我已经手动创建了一个.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});发布于 2018-08-24 19:39:27
发布于 2017-02-06 19:43:38
js-xslx的稳定版本不能很好地处理样式。
但是有a fork,它应该在某个时候被合并回来,因为已经做了大量的工作来支持它。
如果你相信它足够稳定,你已经可以使用它了。
只要npm install xlsx-style --save,用require('xslx-style')替换你的require('xslx'),你就应该可以运行了
发布于 2017-02-06 23:58:43
如果速度不是问题,出于这些原因,我会求助于Excel Interop,我知道你需要在你的计算机上安装它,但任何办公室都应该安装microsoft套件。
它的兼容性很好,性能也不是很好,但是如果你只需要改变单元格值和数据,那么只要你把它们转换成一个对象数组,即使是成千上万的单元格,这样做也是相当快的。
我从来没有做不到任何复杂的事情,包括自动调整列和行的大小,页面打印布局,以奇怪的形状插入/删除单元格,格式化文本和任何其他单元格属性,从.xslx到.xls的转换,反之亦然。
我讨厌excel interop的原因是我讨厌所有的interop,它们处理起来很慢,就是这样。
https://stackoverflow.com/questions/41861696
复制相似问题