java - Apache POI - 提取列中的所有不同值

标签 java excel apache-poi

我有一个如下所示的 Excel 文件 -

Ticket #      Status      Person
1.            Open        John
2.            Working     Mark
3.            Pending     Betty
4.            Working     Mark
5.            Open        Mark
6.            Open        John
7.            Pending     Betty
8.            Working     John
9.            Working     Mark
10.           Pending     Betty

我想提取以下信息

  1. 所有不同人员的姓名(在第 3 列中,在本例中为 John、Mark 和 Betty)。

  2. 一个人有多少票 a.开放 b.工作 c.待处理。 (例如 - 对于 John,有 2 个工单已打开,1 个工单正在处理,0 个工单待处理)。

我正在使用 Apache POI,请建议我如何获取上述信息。

最佳答案

尝试使用该类逐行加载。

public class Person{
  private String name;
  private Map<TypeOfTicket,Integer> tickets;

  //Implements equals based on name property
}

public enum TypeOfTicket{
  Pending,
  Open,
  Working
}

Cell 有一个方法来返回字符串,创建一个实现来读取名称,如果列表中没有,则创建新对象,如果您已将票类型的计数加一。

List<Person> persons = new ArrayList<Person>();
String personName =cell.getStringCellValue();
if(person.contains(new Person(personName){
        //Add logic here to obtain the person object 
        and read the type of the ticket and add one.
}

最后添加人员对象应该处理您存储信息的方式,但您需要逐个单元格地获取值。

只是为了获取您问题的信息。

persons.size();

person.get(new Person("personName")).getTickets().get(TypeOfTicket)

关于java - Apache POI - 提取列中的所有不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21620916/

相关文章:

Java 如何在图像下方添加字符串并调整其大小?

java - 如何使用从不同于零的行号开始的 rowIterator

java - Apache POI : How to change the row which is displayed top-most in a viewer?

java - apache poi在word文档中添加表格

java - 如何使用 Apache POI 将现有 Excel 工作表中的一行复制到新的 Excel 工作表?

java - 如果添加null,ArrayList会动态增长吗?

java - 在 wicket 中获取 CSS 值

java - 连接到 Android 设备的外部生物识别设备

java - 在 webapp 中使用 JExcel Api 时,Tomcat 7 在启动时崩溃

python - 将 Excel 行、列索引转换为 python/openpyxl 中的字母数字单元格引用