我正在研究一个基于Apache POI的Java项目。在项目中,我需要从外部工作簿中导入一些数据。我使用JFilechooser创建了一个UI来选择两个文件。文件路径存储为Strings以在公式中使用。 UI是我程序的GUI类别。
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
该字符串应替换公式的路径。
工作表名称在外部工作簿上正确。但这不会给我价值。请帮忙。