阻止 ArrayList 在 Excel、Apache POI 中收集多个数据而不是一个数据
Posted
技术标签:
【中文标题】阻止 ArrayList 在 Excel、Apache POI 中收集多个数据而不是一个数据【英文标题】:Stop an ArrayList from gathering multiple data instead of one in Excel, Apache POI 【发布时间】:2015-03-25 13:37:16 【问题描述】:我正在导入一个 Excel 文件并尝试在单个列中收集单元格中的数据,如下所示:
当我尝试这样做时,不知何故,使用下面的代码,我得到以下结果:
有没有一种方法可以让我得到 [Teacher's name, HELLO, as, asd]?
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
int temp = sheet.getPhysicalNumberOfRows();
int numberoftickets = temp - 1;
List < String > a = new ArrayList < String > ();
for (Row row: sheet)
Cell c = row.getCell(0);
if (c.getCellType() == Cell.CELL_TYPE_STRING)
a.add(c.getStringCellValue());
String[] simpleArray = a.toArray(new String[a.size()]);
String aa = Arrays.toString(simpleArray);
StringTokenizer t = new StringTokenizer(aa, ",");
System.out.println(a);
【问题讨论】:
【参考方案1】:您正在打印出 inside for 循环的结果,因此它每行打印一次。
相反,在 for 循环之外打印数组列表(在结束 for 循环的 之后。
for (Row row: sheet)
Cell c = row.getCell(0);
if (c.getCellType() == Cell.CELL_TYPE_STRING)
a.add(c.getStringCellValue());
// this brace closes the for loop
//put your print code and tokenize code here
【讨论】:
迭代后我已经在打印了。我不知道为什么它打印了不止一次。【参考方案2】:在Iteration
之后尝试打印结果
for(Row row: sheet)
// Do Whatever you want to do
System.out.println(a);
【讨论】:
迭代后我已经在打印了。我不知道为什么它打印了不止一次。以上是关于阻止 ArrayList 在 Excel、Apache POI 中收集多个数据而不是一个数据的主要内容,如果未能解决你的问题,请参考以下文章
Excel 保存文件出现 您试图打开的文件类型(Excel 2007和更高版本的启用宏的工作簿和模板)被信任中心的文件阻止设置阻止