出现错误“您的InputStream既不是OLE2流,也不是OOXML流,或者您没有在类路径/模块路径中提供poi-ooxml*.jar”

问题描述 投票:0回答:1

我有一个问题。我为朋友写了一个小程序。我读了一个 .xlsx 文件并更新了它。在 IDE 中它运行良好。但是,如果我构建一个 .jar 并执行它,则会收到错误“您的 InputStream 既不是 OLE2 流,也不是 OOXML 流,或者您没有在类路径/模块路径中提供 poi-ooxml*.jar”。

有我的代码摘要:

//Import Excel
public static ImportDaten importExcel() throws IOException {
        ImportDaten importDaten = new ImportDaten();
        java.util.List<Kunde> kunden = new ArrayList<>();
        List<Artikel> artikelList = new ArrayList<>();
        DataFormatter dataFormatter = new DataFormatter();
        File inputWorkbook = new File("C:/Users/jboeh/OneDrive/Desktop/stammdaten.xlsx");
        Workbook workbook = WorkbookFactory.create(inputWorkbook);
        //Rechnungsnummer einlesen
        Sheet indexSheet = workbook.getSheet("Index");
        
        //read data

        workbook.close();

        importDaten.setKunden(kunden);
        importDaten.setArtikelList(artikelList);
        return importDaten;
    }

public static void exportExcel() throws IOException {

        FileInputStream inputStream = new FileInputStream(new File("C:/Users/jboeh/OneDrive/Desktop/stammdaten.xlsx"));
        Workbook workbook = WorkbookFactory.create(inputStream);

        Sheet sheetIndex = workbook.getSheet("Index");
        Cell zelleRechNr = sheetIndex.getRow(0).createCell(1);
        zelleRechNr.setCellValue(rechnung.getRechnungsnr());

        Sheet sheetRechnung = workbook.getSheet("Rechnung");

        Cell zelleRechnung;

        //write Data

        inputStream.close();

        FileOutputStream outputStream = new FileOutputStream("C:/Users/jboeh/OneDrive/Desktop/stammdaten.xlsx");
        workbook.write(outputStream);
        workbook.close();
        outputStream.close();
    }

我希望有人能帮助我。

谢谢

米拉

java excel apache-poi
1个回答
0
投票

我尝试使用 C# 使用 IronXl 库读取 CSV 文件时遇到相同的错误。 我不知道为什么会抛出此错误,但所有 csv 文件 aws 默认使用 excel microsoft 打开。 我更改为 openoffice calc,我可以使用 C# 打开并读取和写入 CSV 文件...

© www.soinside.com 2019 - 2024. All rights reserved.