首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js-xlsx :在写入.xlsx文件时保留单元格样式

js-xlsx :在写入.xlsx文件时保留单元格样式
EN

Stack Overflow用户
提问于 2017-01-26 05:09:19
回答 3查看 11.9K关注 0票数 2

我已经手动创建了一个.xlsx文件。我已经为一些行添加了不同的颜色,并且一些单元格具有自定义的日期格式。

我正在使用js-xlsx npm模块从.xlsx文件中读取数据。在写回相同的.xlsx文件以更新某些单元格值时,选定的颜色和日期格式将丢失。

我尝试了下面的代码,但这无助于保留.xlsx单元格样式。

代码语言:javascript
复制
    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});
EN

回答 3

Stack Overflow用户

发布于 2018-08-24 19:39:27

我自己也偶然发现了这个问题。为了方便将来的读者,我最终找到了ExcelJS,它可以在修改.xlsx文件时很好地保留样式。如果你对js-xlsx的样式特性不感兴趣,这是一个非常好的选择。

你可以用npm install exceljs安装它,他们的github库上的文档(上面的链接)非常棒。

票数 7
EN

Stack Overflow用户

发布于 2017-02-06 19:43:38

js-xslx的稳定版本不能很好地处理样式。

但是有a fork,它应该在某个时候被合并回来,因为已经做了大量的工作来支持它。

如果你相信它足够稳定,你已经可以使用它了。

只要npm install xlsx-style --save,用require('xslx-style')替换你的require('xslx'),你就应该可以运行了

票数 0
EN

Stack Overflow用户

发布于 2017-02-06 23:58:43

如果速度不是问题,出于这些原因,我会求助于Excel Interop,我知道你需要在你的计算机上安装它,但任何办公室都应该安装microsoft套件。

它的兼容性很好,性能也不是很好,但是如果你只需要改变单元格值和数据,那么只要你把它们转换成一个对象数组,即使是成千上万的单元格,这样做也是相当快的。

我从来没有做不到任何复杂的事情,包括自动调整列和行的大小,页面打印布局,以奇怪的形状插入/删除单元格,格式化文本和任何其他单元格属性,从.xslx到.xls的转换,反之亦然。

我讨厌excel interop的原因是我讨厌所有的interop,它们处理起来很慢,就是这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41861696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档