我的目标是打开一个现有的Excel文件(xlsx(
- 添加和命名新工作表
- 添加包含数据的行(多列(
- 提供列标题
这似乎是一次真正的冒险。我现在在浏览器中打开了 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 变得多余,因为要克隆的工作表已经继承了列标题。
感谢您的回复
这里有一个全面的指南:链接