我正在編寫一個讀取多個.csv文件並減少行數的應用程序。Apache POI生成的內容不同於Excel
該應用程序的輸出是一個excel文件(.xls)。我們將這個文件作爲BOM上傳到商店。
它適用於除一個商店以外的所有商店。在那家商店我得到一個結果「無法讀取文件」。
偶然發現,如果我在Excel中打開相同的文件,然後再保存它,商店就會接受它。
不知何故,直接生成的文件與打開並保存在Excel中的文件不同。
這是我的代碼:
@Override
public void writePurchaseList(String path, List<PurchaseItem> list) {
Workbook workbook = new HSSFWorkbook();
Sheet studentsSheet = workbook.createSheet("BOM");
final String[] header = new String[] { "quantity", "description","orderNo" };
int rowIndex = 0;
int cellIndex = 0;
Row row = studentsSheet.createRow(rowIndex++);
row.createCell(cellIndex++).setCellValue(header[0]);
row.createCell(cellIndex++).setCellValue(header[1]);
row.createCell(cellIndex++).setCellValue(header[2]);
for(PurchaseItem item : list){
cellIndex = 0;
row = studentsSheet.createRow(rowIndex++);
row.createCell(cellIndex++).setCellValue(item.getItemQuantity());
row.createCell(cellIndex++).setCellValue(item.getDescription());
row.createCell(cellIndex++).setCellValue(item.getOrderNumber());
}
try {
FileOutputStream fos = new FileOutputStream(path+".xls");
workbook.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
任何人有一個想法是什麼,我做錯了什麼?
// LG
如果您在Excel中打開該文件,並執行另存爲,它的默認格式是什麼?如果您嘗試使用Apache POI 3.15 beta 1(或更新版本)閱讀該文件,是否會獲得更有用的文件類型異常? – Gagravarr
它默認爲* .xls我正在使用3.14。有沒有什麼理由認爲3.15會解決這個問題? –
3.15有更多有用的錯誤消息,如果你給它不支持的文件類型 – Gagravarr