Я пытаюсь создать файлы Excel с таблицами, которые содержат определенные значения. Проблема в том, что Java создает испорченный файл Excel (.xlsx, .xlsm) независимо от того, что я делаю.
Изменение имени столбца таблицы EXISTING - файл поврежден, его нельзя открыть, не восстанавливая , Имя изменено, но по какой-то причине файл должен быть восстановлен. Создание новых таблиц или создание новых столбцов в существующих таблицах может повредить файлы, но я не знаю, почему.
Это весь мой код:
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();
}
}
PS: я новичок в Java - у меня был 3 года перерыва в java. Я прошу прощения за мой язык.