[英]How to read specific worksheet using OPCPackage POI
假设我有一个由三个工作表组成的xlsx文件。 使用此代码段,我可以读取整个xlsx文件,即所有三个工作表,其中每行用方括号分隔,每个单元格用逗号分隔。
public static List<List<String>> excelProcess(File xlsxFile) throws Exception {
int minColumns = -1;
// The package open is instantaneous, as it should be.
OPCPackage p = OPCPackage.open(xlsxFile.getPath(), PackageAccess.READ);
XLSXParse xlsx2csv = new XLSXParse(p, System.out, minColumns);
xlsx2csv.process();
System.out.println("row list===="+xlsx2csv.getRowList().size());
return xlsx2csv.getRowList();
}
xlsxFile是xlsx文件的路径。 但是我只想要一个特定工作表的数据,例如worksheet2,所以我也会像下面一样传递工作表名称。
public static List<List<String>> excelProcess(File xlsxFile,String sheetName) throws Exception {
这里sheetName是特定工作表的名称。
您似乎没有使用任何内置的Apache POI代码进行解析,因此您需要直接切换为使用POI!
拥有后,如果您查看Workbook上的方法,您将看到有一些方法可以让您按名称或按索引获取给定的工作表
您的代码将如下所示
public static List<List<String>> excelProcess(File xlsxFile, String sheetName)
throws Exception {
Workbook wb = WorkbookFactory.create(xlsxFile);
Sheet sheet = wb.getSheet(sheetName);
// process sheet contents here
// eg something like
DataFormatter formatter = new DataFormatter();
for (Row r : sheet) {
for (Cell c : r) {
System.out.println(formatter.formatCellValue(c));
}
}
}
请参阅Usermodel文档以及遍历行和单元格文档以开始使用Apache POI处理文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.