我正在开发一个基于Apache POI的java项目 . 在项目中,我需要从外部工作簿导入一些数据 . 我已经使用JFilechooser创建了一个UI来选择这两个文件 . 文件路径存储为字符串以在公式中使用 . UI是我程序的GUI clas .

String file1 = UI.filename1;
String file1 = UI.filename2;
String avr = UI.filename3;

File1和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该字符串应替换公式的路径 . 工作表名称在外部工作簿上是正确的 . 但它不会给我 Value . 请帮忙 .