Кому это может быть интересно,
Я пытаюсь создать сводную таблицу с помощью Excel, но сталкиваюсь с теми же ошибками, которые не знаю, как исправить. Всякий раз, когда я открываю документ с помощью excel, он выдает следующие ошибки:
Removed Part: /xl/pivotTables/pivotTable1.xml part with XML error. (PivotTable view) Load error. Line 2, column 0.
Removed Records: Workbook properties from /xl/workbook.xml part (Workbook)
Это код, который используется при создании сводной таблицы:
public static void main(String[] args) throws IOException, IndexOutOfBoundsException {
SpringApplication.run(SpringLowestPriceFinderApplication.class, args);
FileInputStream file1 = new FileInputStream(
new File("C:\\users\\sbitzer\\downloads\\RxWave Daily Report-07-08-2020 Sam5.xlsx"));
JSONParser parser = new JSONParser();
XSSFWorkbook wb1 = new XSSFWorkbook(file1);
XSSFSheet s1 = wb1.getSheetAt(5);
XSSFSheet s2 = wb1.getSheetAt(0);
XSSFSheet s3 = wb1.getSheetAt(6);
XSSFSheet s4 = wb1.getSheetAt(7);
XSSFSheet s5 = wb1.getSheetAt(8);
addToFirstDrugList(wb1);
addToSecondDrugList(wb1);
addToThirdDrugList(wb1);
addToFourthDrugList(wb1);
addToFifthDrugList(wb1);
//int count = 2773;
for (int i = 0; i < 2808; i++)
{
double v1 = lowestPrices1.get(i);
double v2 = lowestPrices2.get(i);
double v3 = lowestPrices3.get(i);
double v4 = lowestPrices4.get(i);
double v5 = lowestPrices5.get(i);
double x = findMinimumPrice(v1,v2,v3,v4,v5);
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(i+2);
System.out.println(s1.getPhysicalNumberOfRows());
Row r = s1.createRow(i+1);
Row r2 = s2.getRow(i+1);
r.createCell(0).setCellValue(r2.getCell(0).getStringCellValue());
r.createCell(1).setCellValue(r2.getCell(1).getStringCellValue());
r.createCell(2).setCellValue(r2.getCell(2).getStringCellValue());
r.createCell(3).setCellValue(r2.getCell(3).getStringCellValue());
r.createCell(4).setCellValue(r2.getCell(4).getStringCellValue());
r.createCell(5).setCellValue(r2.getCell(5).getStringCellValue());
r.createCell(6).setCellValue(r2.getCell(6).getStringCellValue());
String minZ = findMinZip(v1,v2,v3,v4,v5);
String z = df.format(x);
System.out.println("X IS: " + x);
if (Double.isNaN(x))
{
z = "N/A";
}
System.out.println("Z IS: " + z);
r.createCell(7).setCellValue(minZ);
r.createCell(8).setCellValue(z);
r.createCell(9).setCellValue(r2.getCell(12).getStringCellValue());
}
int count = 1;
for (int j = 0; j < s2.getPhysicalNumberOfRows()-1; j++)
{
try {
Row r = s2.getRow(j+1);
Row r2 = s3.createRow(count);
//System.out.println(r.getCell(27).getStringCellValue());
if (r.getCell(8).getStringCellValue().equals(r.getCell(11).getStringCellValue()) && (!r.getCell(8).getStringCellValue().equals("N/A")))
{
r2.createCell(0).setCellValue(r.getCell(0).getStringCellValue());
r2.createCell(1).setCellValue(r.getCell(1).getStringCellValue());
r2.createCell(2).setCellValue(r.getCell(2).getStringCellValue());
r2.createCell(3).setCellValue(r.getCell(3).getStringCellValue());
r2.createCell(4).setCellValue(r.getCell(4).getStringCellValue());
r2.createCell(5).setCellValue(r.getCell(5).getStringCellValue());
r2.createCell(6).setCellValue(r.getCell(6).getStringCellValue());
r2.createCell(7).setCellValue(r.getCell(7).getStringCellValue());
r2.createCell(8).setCellValue(r.getCell(10).getStringCellValue());
r2.createCell(9).setCellValue(r.getCell(8).getStringCellValue());
r2.createCell(10).setCellValue(r.getCell(11).getStringCellValue());
r2.createCell(11).setCellValue(r.getCell(12).getStringCellValue());
System.out.println(j);
r2.createCell(12).setCellValue(r.getCell(27).getStringCellValue());
r2.createCell(13).setCellValue("0%");
count++;
}
}
catch (NullPointerException e)
{
e.printStackTrace();
}
}
AreaReference a = new AreaReference("'Pivot Reference'!$A$1:$N$291", SpreadsheetVersion.EXCEL2007);
CellReference c = new CellReference("'InsideRx Best Price'!$A$6");
XSSFPivotTable iRxBest = s4.createPivotTable(a,c,s3);
// iRxBest.addReportFilter(12);
// iRxBest.addReportFilter(8);
iRxBest.addRowLabel(0);
iRxBest.addRowLabel(1);
iRxBest.addRowLabel(2);
iRxBest.addRowLabel(3);
iRxBest.addRowLabel(4);
iRxBest.addRowLabel(5);
iRxBest.addRowLabel(6);
iRxBest.addRowLabel(7);
iRxBest.addRowLabel(9);
iRxBest.addRowLabel(10);
iRxBest.addRowLabel(11);
iRxBest.addRowLabel(13);
// iRxBest.addColumnLabel(DataConsolidateFunction.SUM, 13);
count = 1;
for (int j = 0; j < s2.getPhysicalNumberOfRows()-1; j++)
{
try {
Row r = s2.getRow(j+1);
Row r2 = s5.createRow(count);
if (!(r.getCell(8).getStringCellValue().equals("N/A")) && (!(r.getCell(11).getStringCellValue().equals("N/A"))))
{
double d1 = Double.parseDouble(r.getCell(8).getStringCellValue());
double d2 = Double.parseDouble(r.getCell(11).getStringCellValue());
if ((d1 < d2))
{
r2.createCell(0).setCellValue(r.getCell(0).getStringCellValue());
r2.createCell(1).setCellValue(r.getCell(1).getStringCellValue());
r2.createCell(2).setCellValue(r.getCell(2).getStringCellValue());
r2.createCell(3).setCellValue(r.getCell(3).getStringCellValue());
r2.createCell(4).setCellValue(r.getCell(4).getStringCellValue());
r2.createCell(5).setCellValue(r.getCell(5).getStringCellValue());
r2.createCell(6).setCellValue(r.getCell(6).getStringCellValue());
r2.createCell(7).setCellValue(r.getCell(7).getStringCellValue());
r2.createCell(8).setCellValue(r.getCell(10).getStringCellValue());
r2.createCell(9).setCellValue(r.getCell(8).getStringCellValue());
r2.createCell(10).setCellValue(r.getCell(11).getStringCellValue());
r2.createCell(11).setCellValue(r.getCell(12).getStringCellValue());
System.out.println(j);
//System.out.println(r.getCell(27).getStringCellValue());
r2.createCell(12).setCellValue(r.getCell(27).getStringCellValue());
//r2.createCell(13).setCellValue("0%");
// r2.createCell(11).setCellValue(r.getCell(11).getStringCellValue());
count++;
}
}
}
catch (NullPointerException e)
{
e.printStackTrace();
}
}
count = 1;
FileOutputStream foo = new FileOutputStream("C:\\users\\sbitzer\\downloads\\RxWave Daily Report-07-08-2020 Sam5.xlsx");
wb1.write(foo);
file1.close();
// Closing the workbook
wb1.close();
System.out.println("END OF PROGRAM");
}
Если вы знаете, как Решите эту проблему, дайте мне знать. Я не хочу, чтобы при попытке открыть сводную таблицу с помощью excel возникали какие-либо ошибки.