Я работаю над проектом Java, который основан на Apache POI. В проекте мне нужно импортировать некоторые данные из внешней рабочей книги. Я создал пользовательский интерфейс с JFilechooser для выбора двух файлов. Пути к файлам хранятся в виде строк для использования в формуле. Интерфейс пользователя - это графическая оболочка моей программы.
String file1 = UI.filename1;
String file1 = UI.filename2;
String avr = UI.filename3;
Файл1 и 2 похожи на C:\Users\Desktop\Sheet.xlsx
avr это что-то вроде C:\Users\Desktop\[Sheet.xlsx]
FileInputStream fis1= new FileInputStream (file1);
FileInputStream fis2= new FileInputStream (file2);
XSSFWorkbook wb = new XSSFWorkbook(fis1);
XSSFSheet sheet7 =wb.createSheet("Average");
XSSFWorkbook wb2 = new XSSFWorkbook(fis2);
XSSFSheet sheet22= wb2.getSheetAt(0);
int x;
for (x=0; x <= sheet22.getLastRowNum(); x++)
{
sheet7.createRow(x).createCell(0).setCellFormula("'avr Average_Graph'!A" +(x)+" ");
sheet7.getRow(x).createCell(1).setCellFormula("'avr Average_Graph'!B" +(x)+" ");
}
Когда я запускаю программу, цикл for работает правильно и правильно записывает данные в рабочую книгу. Но когда я открываю файл excel, он показывает следующий результат.
На веб-сайте POI формула отображается как .setCellFormula("'C:\Users\Desktop\[Sheet.xlsx]Average_Graph'!A1")
https://poi.apache.org/components/spreadsheet/eval.html
Строка должна заменить путь формулы.
Названия листов правильные на внешней книге. Но это не даст мне ценности. Пожалуйста, помогите.