我引用这个例子来导出一个https://github.com/SheetJS/js-xlsx/issues/817工作表。如何做像背景颜色,字体大小和增加单元格的宽度,使数据完全适合单元格样式。我已经通过了文档,但找不到任何适当的例子来使用填充等。有没有一种方法来做格式?
Below is the code snippet:
/* make the worksheet */
var ws = XLSX.utils.json_to_sheet(data);
/* add to workbook */
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "People");
/* write workbook (use type 'binary') */
var wbout = XLSX.write(wb, {bookType:'xlsx', type:'binary'});
/* generate a download */
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-
stream"}),"sheetjs.xlsx");
5条答案
按热度按时间juud5qan1#
样式仅在
SheetJS
的Pro Version中可用。但我认为您使用的是社区版本(免费版本)。在社区版本中样式不可用。您可以在这里查看官方信息:
我们还提供了专业版,其中包括性能增强、样式等附加功能以及专门的支持。
7d7tgy0s2#
有一堆允许样式化的社区分支,我个人最喜欢的是xlsx-js-style.,它是最新的,与其他库相比工作得很好。
sheetjs-style也是最新的,但我有一些问题,请参阅:Styles not working
xlsx-style不是最新的。目前在SheetJS:master后面有397个提交。如果可能的话,我不会使用它。
所有这些库共享相同的样式选项。下面是一些例子:
a2mppw5e3#
我使用sheetjs-style(它是sheetjs的一个分支)为excel文件中的单元格添加格式。
这很简单。但是,你必须给每个单元格添加样式。给一个单元格区域添加样式是不方便的。
更新:官方示例使用颜色“FFFFAA00”。但我删除了第一个“FF”,它仍然像以前一样工作。删除的部分用于透明度(见单元格样式中的COLOR_SPEC),但不知何故,当我更改或删除它时,它没有任何效果。
deyfvvtc4#
在测试了以上所有选项之后。对于ReactJS,我终于找到了一个工作完美的包。
https://github.com/ShanaMaid/sheetjs-style
wribegjk5#
添加样式时请注意以下几点:
1.单元格不应为空
1.首先向单元格中添加数据,然后向该单元格添加样式。
2天,我被击中,并没有得到任何样式出现在我的excel文件,因为我只是在添加数据之前添加样式。不要这样做,它不会出现。
我使用xlsx-js-style包,并添加到我的excel的样式,如下所示:-
希望这对你有帮助...快乐编码:-)