簡體   English   中英

在 SAP S/4Hana 應用程序中使用 nodejs 處理大型 excel 文件

[英]Procesing big excel file with nodejs in SAP S/4Hana Application

我想尋求一些幫助來解決我面臨的問題(不是 javascript 開發人員,請記住。)。 任何幫助將不勝感激。

  • 流程:用戶從 UI 上傳選定的 excel 文件。 在后端,我們使用 xlsx/exceljs javascirpt 庫處理文件(都嘗試過 - 最終結果相同)以填充自定義數據結構以供以后使用。

  • 問題:使用大型 excel 文件(從 10k 行及更多,具有很多屬性)我收到以下錯誤:

    ...錯誤:損壞的 zip:找不到中央目錄的結尾。

  • 附加信息:通過在普通 nodejs 服務器(本地)上運行相同的代碼 - 它可以工作。 在 SAP 服務器上 - 它沒有。 使用小文件 - 一切都很好。

  • 技術: SAP S/4Hana、OData v4、xlsx v0.18.5、exceljs v4.3.0、節點 >=v12。

  • 代碼示例:

     //with exceljs library fromXlsx_1: async (buffer, cols) => { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.load(buffer);//<-- error workbook.worksheets.forEach(function(sheet) { //some code }); }, //with xlsx library fromXlsx_2: (buffer, cols) => { var book = XLSX.read(buffer, { type: 'buffer', cellDates: true, cellText: false);//<-- error var sheet = book.Sheets[book.SheetNames[0]]; const result = XLSX.utils.sheet_to_json(sheet, { header: Object.entries(cols).map(a => a[0]), raw: true }); //some code }

如果需要更多信息 - 詢問。 感謝您的時間。

設法解決它。 根本原因是 - 缺乏知識和包“busboy”的實施(假設,編寫自定義包以“處理”文件的同事沒有犯錯誤)。 如果您偶然發現像我這樣的類似問題,請仔細檢查“busboy”實現,如果它正確解析文件並且它等待文件被全部處理 - 使用 async/await 概念。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM