我正在尝试创建包含某些值的表的Excel文件。问题是,无论我做什么,Java都会创建损坏的Excel文件(.xlsx、.xlsm)。
更改现有表的列文件的名称已损坏,如果不进行修复,则无法打开它。名称已更改,但由于某些原因,必须修复该文件。创建新表或为现有表创建新列似乎会损坏文件,但我不知道为什么。
这是我的全部代码:
package pl.TiHerbatka.Ti.ExcelWriteReadTi.Main;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFTable;
import org.apache.poi.xssf.usermodel.XSSFTableColumn;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Main {
public static void main(String[] args) throws InvalidFormatException, IOException {
File deleteOldFile = new File("E:\\Users\\PLACEHOLDER\\ExcelTestowy#2 — kopia.xlsx");
if (deleteOldFile.exists()) {
deleteOldFile.delete();
System.out.println("Deleted!");
}
File fT = new File("E:\\Users\\PLACEHOLDER\\ExcelTestowy#2.xlsx");
FileInputStream fTI = new FileInputStream(fT);
if (deleteOldFile.exists()) {
System.out.println("File exists!\n--------------");
} else {
System.out.println("File doesn't existst");
}
/////////////////////////////////
XSSFWorkbook wb = new XSSFWorkbook(fTI);
XSSFSheet sh = wb.getSheetAt(0);
XSSFTable tb = sh.getTables().get(0);
tb.setDisplayName("ExampleTableName"); //Works
tb.getColumns().get(0).setName("ExampleColumnName"); // Doesn't work
tb.createColumn("ExampleAdditionalColumnINeed"); //Doesn't work too.
File fTO = new File("E:\\Users\\PLACEHOLDER\\ExcelTestowy#2 — kopia.xlsx");
FileOutputStream fTOO = new FileOutputStream(fTO);
wb.write(fTOO);
fTOO.flush();
fTOO.close();
wb.close();
}
}
附言:我是Java初学者——我在Java上有三年的Rest时间。我为我的语言道歉。
Apache POI无法创建。xlsm-与包含宏的excel文件一样。
请参阅:使用ApachePOI写入xlsm(Excel2007)
在更改了XSSFTable
中的表标题后,我们还需要更改工作表中的单元格值,这是表标题的表示。即使在当前apache poi 4.1.2中,poi也无法保持两个部分的更新。
以下内容适用于使用ApachePOI4.1.2的我:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFTable;
public class ExcelRenameTable {
public static void main(String[] args) throws InvalidFormatException, IOException {
File fT = new File("./ExcelTestowy.xlsm");
FileInputStream fTI = new FileInputStream(fT);
XSSFWorkbook wb = new XSSFWorkbook(fTI);
XSSFSheet sh = wb.getSheetAt(0);
XSSFTable tb = sh.getTables().get(0);
tb.setDisplayName("ExampleTableName");
tb.getColumns().get(0).setName("ExampleColumnName");
//we also need changing the cell value in the sheet which is the representation of the table header
int tbStartRow = tb.getStartRowIndex(); // start row of table = header row
int tbStartCol = tb.getStartColIndex(); // start col of table = first col
sh.getRow(tbStartRow).getCell(tbStartCol).setCellValue("ExampleColumnName");
tb.createColumn("ExampleAdditionalColumnINeed");
//we also need changing the cell value in the sheet which is the representation of the table header
int tbEndCol = tb.getEndColIndex(); // end col of table = new created column
XSSFCell cell = sh.getRow(tbStartRow).getCell(tbEndCol);
//maybe we need creating the cell first since the column is new
if (cell == null) cell = sh.getRow(tbStartRow).createCell(tbEndCol);
cell.setCellValue("ExampleAdditionalColumnINeed");
File fTO = new File("./ExcelTestowy — kopia.xlsm");
FileOutputStream fTOO = new FileOutputStream(fTO);
wb.write(fTOO);
fTOO.close();
wb.close();
}
}
我正在尝试向我用SceneBuilder创建的FXML文件中存在的ChoiceBox添加值,但当我尝试这样做时(在main类中),无论我尝试什么,我都会得到一个NullPointerException。请注意,当我注释掉方法中的ChoiceBox代码(参见下面)时,项目成功运行,因此NPE没有其他原因。 null 堆栈跟踪
它返回几个错误,其中大多数显示:<代码> 我对编码很陌生,我只是想用推特API制作一个有趣的机器人,但有很多错误,我不知道该怎么办。 出现的主要错误如下: (从集合导入namedtuple,映射导入错误:无法从“集合”导入名称“映射”) 谁能帮帮我吗? 出现的错误:回溯(最近一次调用):文件“C:\Users\wgama\PycharmProjects\botesquilo\botesquilo.
我尝试样式复选框背景颜色,但它不会改变任何我做。我正在使用最新的火狐29。 是否在css中或浏览器中有一些规则更改? CSS: 下面是一个演示http://jsfidle.net/6kxrg/
问题内容: 我使用Eclipse在Windows 7中创建了一个jar文件。当我尝试打开jar文件时,它说jar文件无效或损坏。谁能建议我为什么jar文件无效? 问题答案: 当您在Windows资源管理器中双击一个JAR文件时,会发生这种情况,但是JAR本身实际上不是 可执行的 JAR。真正的可执行JAR至少应具有带有方法的类,并在中引用它。 在Eclispe中,您需要将项目导出为 Runnabl
在我的应用程序(,出现了一个向上箭头,表示,但我无法处理它来执行任何操作,甚至无法显示toast。我尝试了这个方法,并在选项ItemSelected()中处理了开关(item.getItemId()),但这两种解决方案都不适合我。我错过了一些东西,但不知道是什么。 这是我的代码: ... 我的整个选项项已选定: 我不知道其他代码是否重要: 在我的清单中,我没有父母活动。 我找到了这个答案,它似乎是
问题内容: 在将Maven jFree依赖项添加到现有应用程序后,我将无法执行创建的jar。 我收到的唯一错误消息如下: 完整的外观如下所示: 如果执行jar,则不会得到其他任何调试信息。 是否可以验证jarfile?或有类似…的东西? 重现步骤: 新建一个文件夹 从上方将Pom.xml复制到该文件夹中。 保存小的`public static void main(…)。进入src / main