如何使用 Java 修改现有的 Excel 工作簿



我的目标是打开一个现有的Excel文件(xlsx(

  1. 添加和命名新工作表
  2. 添加包含数据的行(多列(
  3. 提供列标题

这似乎是一次真正的冒险。我现在在浏览器中打开了 30 个选项卡来解决一个问题,然后解决另一个问题。

我将以下jar添加到我的java项目中

  • 共享资源集合4-4.1.jar
  • 共享资源压缩-1.19.jar
  • dom4j-1.6.1.jar
  • ooxml-schemas-1.1.jar
  • POI-4.0.1.jar
  • poi-ooxml-4.0.1.jar
  • poi-ooxml-schemas-4.0.1.jar
  • XMLbeans-2.6.0.jar

我将poi-4.1.0导入到我的项目中。现在我的项目中有大量文件,但仍然遇到错误。

我无法解决的最后一个是:

无法解析类型 org.etsi.uri.x01903.v13.SignaturePolicyIdType。它间接引用自所需的.class文件 XAdESSignatureFacet.java

Resource: XAdESSignatureFacet.java

任何人都可以举一个工作 java 示例。不敢相信这必须如此复杂。

提前致谢

通过重新创建我的 java 项目的属性解决了这个问题。

Java 构建路径 - 库:

  • 共享编解码器-1.12.jar
  • 共享资源收藏4-4.3.jar
  • 共享资源压缩-1.19.jar
  • 共享资源-IO-1.3.jar
  • 共享资源数学3-3.6.1.jar
  • 曲线-1.06.jar
  • dom4j-1.6.1.jar
  • POI-4.1.0.jar
  • POI-examples-4.1.0.jar
  • poi-ooxml-4.1.0.jar
  • poi-ooxml-schemas-4.1.0.jar
  • POI-暂存器-4.1.0.jar
  • XMLbeans-3.1.0.jar

JRE 系统库 [jre1.8.0_221]

爪哇代码:

XSSFWorkbook workbook;
workbook = getWorkBook("path to existing workbook", new XSSFWorkbook());
XSSFSheet spreadsheet;
spreadsheet = workbook.cloneSheet("the index number of the sheet to be cloned", "the name of the sheet you want to create");
FileOutputStream outputStream;
try {
outputStream = new FileOutputStream("excel file directory path");
try {
workbook.write(outputStream);
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}

您可以实施所有必要的东西以满足您的需求。例外情况等 我根据CSV文件中提供的数据合理地填充了行和列 检查和验证。

Java 代码示例:

Row row; 
Cell cell;
row = spreadsheet.createRow("row index");
cell = row.createCell("column index");
cell.setCellValue("String");

通过此实现,我实现了上述目标,但目标 3 除外,目标 3 变得多余,因为要克隆的工作表已经继承了列标题。

感谢您的回复

这里有一个全面的指南:链接

最新更新