问题描述
我正在处理一个 Excel 工作表,其中有多个列,其中包含多个文本值,包括以 $
开头的变量。我正在使用工作簿编写 Java 代码来读取 xlsx 文件。由于我以前从未使用过它,有人可以告诉我如何使用它来完成这项任务。
我的代码结构在这里:
package com.demo.ExcelProject;
import java.io.File;
import org.apache.poi.sl.usermodel.Sheet;
import org.apache.poi.ss.usermodel.CellRange;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
public class CreateResult {
public static void main(String[] args) {
try {
//Create a workbook
Workbook workbook = WorkbookFactory.create(new File("template.xlsx"));
//Get the first worksheet
CTWorksheet worksheet = (CTWorksheet) workbook.getSheetAt(0);
//Find the text string "$"
//Save the document to file
workbook.savetoFile("output.xlsx");
}
catch(Exception e) {
e.printstacktrace();
}
}
}
一些更亲的人,请指导我。
解决方法
好吧,您将需要迭代器来迭代 Row(这也需要 .next() )和迭代器来迭代单元格。当您迭代单元格时,您会使用 .next() 获得下一个单元格,它应该看起来像这样
Iterator<Row> iterator = inputSheet.iterator();
while (iterator.hasNext()){
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
//iterator() or cellIterator() both ok
while (cellIterator.hasNext()){
Cell cell = cellIterator.next();
String cellVal = cell.getStringCellValue();
if (cellVal.startsWith("$")){
//do something
}
}
}