从外部工作簿导入数据(跨工作簿方法Apache POI)

时间:2018-08-26 05:51:26

标签: java excel apache-poi

我正在研究一个基于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文件时,它显示以下结果。

enter image description here

在POI网站中,公式显示为.setCellFormula("'C:\Users\Desktop\[Sheet.xlsx]Average_Graph'!A1") https://poi.apache.org/components/spreadsheet/eval.html 该字符串应替换公式的路径。 工作表名称在外部工作簿上正确。但这不会给我价值。请帮忙。

0 个答案:

没有答案