gpt4 book ai didi

java - 在 Java 中使用 POI 框架读取 xlsm 文件时出错

转载 作者:行者123 更新时间:2023-11-30 05:51:24 25 4
gpt4 key购买 nike

我无法使用 POI 框架 (HSSF) 读取 xlsm 文件。读取 xlsm 文件时出现以下错误。

提供的数据似乎在 Office 2007+ XML 中。您正在调用处理 OLE2 Office 文档的 POI 部分。您需要调用 POI 的不同部分来处理此数据(例如 XSSF 而不是 HSSF)

我也尝试通过 XSSF 读取文件。即使那样也不能解决问题。谁能告诉我如何使用 poi 框架读取 java 代码中的 xlsm 文件并向该文件写入新工作表。

最佳答案

首先下载这些 JAR 并将它们添加到构建路径中:

  • xmlbeans-2.3.0.jar
  • poi-ooxml-schemas-3.7.jar
  • poi-ooxml-3.9.jar
  • poi-3.9.jar
  • dom4j-1.6.1.jar

现在您可以试试这段代码了。它将读取 XLSX 和 XLSM 文件:

import java.io.File;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ReadMacroExcel {
public static void main(String[] args) {
try {
//Create a file from the xlsx/xls file
File f=new File("F:\\project realated file\\micro.xlsm");

//Create Workbook instance holding reference to .xlsx file
org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(f);
System.out.println(workbook);

//printing number of sheet avilable in workbook
int numberOfSheets = workbook.getNumberOfSheets();
System.out.println(numberOfSheets);
org.apache.poi.ss.usermodel.Sheet sheet=null;
//Get the sheet in the xlsx file
for (int i = 0; i < numberOfSheets; i++) {


sheet = workbook.getSheetAt(i);
System.out.println(sheet.getSheetName());

//Iterate through each rows one by one
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext())
{
Row row = rowIterator.next();
//For each row, iterate through all the columns
Iterator<Cell> cellIterator = row.cellIterator();

while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
//Check the cell type and format accordingly
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "t");
break;
}
}
System.out.println("");
}
}
}
catch (Exception e)
{
e.printStackTrace();
}


}
}

关于java - 在 Java 中使用 POI 框架读取 xlsm 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com