我有一个如下所示的 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
我想提取以下信息
所有不同人员的姓名(在第 3 列中,在本例中为 John、Mark 和 Betty)。
一个人有多少票 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/