2017-01-25 257 views
0

我手動創建了一個.xlsx文件。我爲某些行添加了不同的顏色,並且某些單元格具有自定義日期格式。js-xlsx:在寫入.xlsx文件時保留單元格樣式

我正在使用js-xlsx npm模塊從.xlsx文件讀取數據。在寫回相同的.xlsx文件以更新某些單元格值時,所選的顏色和日期格式會丟失。

我嘗試了下面的代碼,但沒有幫助保存.xlsx單元格樣式。

var XLSX = require('xlsx'); 
    XLSX.readFile('abc.xlsx', {cellStyles: true}); 
     var first_sheet_name = workbook.SheetNames[1]; 
     var address_of_cell = 'A1'; 
     var worksheet = workbook.Sheets[first_sheet_name]; 
     var desired_cell = worksheet[address_of_cell]; 
     var desired_value = desired_cell.v; 
     desired_cell.v = 'efg'; 
    XLSX.writeFile('abc.xlsx', {cellStyles: true}); 
+0

看起來這是圖書館已知的問題。在GitHub上有關於問題頁面的廣泛討論([#128](https://github.com/SheetJS/js-xlsx/issues/128))。 – MTCoster

+0

謝謝。有我可以使用的另一個圖書館嗎? – SUM

回答

0

js-xslx的穩定版不能很好地處理樣式。

但是有a fork,應該合併回來,已經做了大量的工作來支持它。

如果您相信它足夠穩定,您可以使用它。

只是npm install xlsx-style --save,更換您的require('xslx')require('xslx-style'),你應該是好去

0

如果速度不是問題,我會訴諸到Excel互操作等原因,這些,我知道你需要它安裝在你的電腦但任何辦公室都應該安裝Microsoft套件。

它卓越的兼容性,明智的性能並不那麼好,但是如果您只需要更改單元格值和數據,那麼即使對於成千上萬個單元格,只要您將它們轉換爲一個對象數組。

我從來沒有做過任何複雜的工作,包括自動調整大小的列和行,頁面打印佈局,以奇怪形狀插入/刪除單元格,格式化文本和任何其他單元格屬性,從.xslx到.xls,反之亦然等等。

我討厭excel interop是我討厭所有interop,他們處理緩慢,多數民衆贊成它。

相關問題