Apache POI – JAVA – 迭代excel中的列

新来的java在这里。 我正在研究读取excel文件的代码(查看列中的单元格),然后写入类似下表的代码:

我有一个excel文件,看起来像这样:

col1 col2 col3 col4 ----------------------------- row1 | 2,3,1 _ 1 w row2 | 3,2,7 _ 2 x row3 | _ _ 3 y row4 | 4,9 _ 4 z 

我在第2列写了一些值(使用XLWT),如下所示:

  col1 col2 col3 col4 ----------------------------- row1 | 2,3,1 x,y,w 1 w row2 | 3,2,7 y,x 2 x row3 | _ _ 3 y row4 | 4,9 z 4 z 

本质上,第3列和第1列进行比较,如果单元格(1,1)的值与第3列匹配,则第4列的值(对应于第3列)写入第2列。

我已经在Python中完成了这个工作,我考虑使用Jython,但是我找不到任何有关将python模块导入Jython代码的文档。 我相信XSSF apache-poi是我可以用java处理xlsx文件的唯一方法。

相关页面: 如何在java中做excel的单元迭代

 import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; public class Python { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(new File("C:\\Users\\...\\Bioactives25s.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(file); XSSFSheet worksheet = workbook.getSheetAt(0); for (int i = 0; i < 9999; i++) { XSSFRow row = worksheet.getRow(i); if(row == null) { //iterates over rows } for (int j = 0; j < 30; j++) { XSSFCell cell = row.getCell(j); if(cell == null) { //iterates over cells 

主要寻找一种迭代列值的方法。 我查看了文档: http : //poi.apache.org/spreadsheet/quick-guide.html#Iterator

但我只能find处理行和单元格的代码,而不是列。 我想遍历列尽pipe。 有没有任何代码来处理这个?

只需遍历行并获取所需的单元格:

 int columnIndex = 3; for (int rowIndex = 0; rowIndex<3; rowIndex++){ Row row = CellUtil.getRow(rowIndex, sheet); Cell cell = CellUtil.getCell(row, columnIndex); }