首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SheetJS xlsx-单元格样式

SheetJS xlsx-单元格样式
EN

Stack Overflow用户
提问于 2018-05-03 13:25:26
回答 4查看 38.3K关注 0票数 13

我引用这个例子来导出工作表https://github.com/SheetJS/js-xlsx/issues/817。如何设置单元格的样式,如背景颜色、字体大小和增加单元格的宽度以使数据完全适合?我已经浏览了文档,但找不到任何适当的示例来使用fill etc.Is进行格式设置?

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

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-07 15:17:18

Styling is only available in Pro Version of SheetJS。但我认为你使用的是社区版(免费版)。社区版本样式中的不可用

你可以在这里查看official information

我们还提供具有性能增强功能的专业版,以及styling和专用支持等附加功能。

票数 19
EN

Stack Overflow用户

发布于 2021-10-27 12:43:27

有一堆社区分支允许样式化。我个人最喜欢的是xlsx-js-style.,它是最新的,与其他库相比工作得很好。

sheetjs-style也是最新的,但我用它遇到了一些问题。请参阅:Styles not working

xlsx-style不是最新的。目前有397个提交落后于SheetJS:master。如果可能的话,我不会使用它。

所有这些库共享相同的样式选项。这里有一大堆例子:

代码语言:javascript
复制
for (i in ws) {
    if (typeof(ws[i]) != "object") continue;
    let cell = XLSX.utils.decode_cell(i);

    ws[i].s = { // styling for all cells
        font: {
            name: "arial"
        },
        alignment: {
            vertical: "center",
            horizontal: "center",
            wrapText: '1', // any truthy value here
        },
        border: {
            right: {
                style: "thin",
                color: "000000"
            },
            left: {
                style: "thin",
                color: "000000"
            },
        }
    };

    if (cell.c == 0) { // first column
        ws[i].s.numFmt = "DD/MM/YYYY HH:MM"; // for dates
        ws[i].z = "DD/MM/YYYY HH:MM";
    } else { 
        ws[i].s.numFmt = "00.00"; // other numbers
    }

    if (cell.r == 0 ) { // first row
        ws[i].s.border.bottom = { // bottom border
            style: "thin",
            color: "000000"
        };
    }

    if (cell.r % 2) { // every other row
        ws[i].s.fill = { // background color
            patternType: "solid",
            fgColor: { rgb: "b2b2b2" },
            bgColor: { rgb: "b2b2b2" } 
        };
    }
}
票数 5
EN

Stack Overflow用户

发布于 2021-07-26 14:25:45

我使用sheetjs-style (sheetjs的一个分支)为excel文件中的单元格添加格式。

代码语言:javascript
复制
ws["A1"].s =        // set the style for target cell
  font: {
    name: '宋体',
    sz: 24,
    bold: true,
    color: { rgb: "FFAA00" }
  },
};

这很简单。但是,您必须为每个单独的单元格添加样式。将样式添加到单元格范围并不方便。

更新:官方示例使用颜色"FFFFAA00“。但我删除了第一个"FF“,它仍然像以前一样工作。删除的部分用于透明(请参阅Cell Styles中的COLOR_SPEC ),但不知何故,当我更改或删除它时,它没有任何效果。

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

https://stackoverflow.com/questions/50147526

复制
相关文章

相似问题

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