用xlsx-style设置表格的高度,宽度,颜色,字体等

本文介绍如何利用xlsx-style库来设置Excel表格的高度、宽度、颜色和字体等样式。内容涉及基于js-zip 2.x和3.x版本的实现,并提供了在Vue项目中的代码示例。
摘要由CSDN通过智能技术生成

参考资料,讲的不错,他用的是node-xlsx
我只用了xlsx,xlsx-style所以修改这个方法就行了
完整版文章
1.基于js-zip,2.xx版本
2.基于js-zip3.xx版本
文章中有关于dataInfo的说明
dataInfo的说明

// xlsx-style版本0.8.13
// xlsx版本0.14.1 
//这是xlsx-style文件中的xlsx.js的需要修改的代码,是从xlsx文件夹中的xlsx.js中复制出来的
// write_ws_xml_data找到找个方法名字,全部替换
// 把xlsx中能修改高度的代码复制到xlsx-style中
var DEF_PPI = 96, PPI = DEF_PPI;
function px2pt(px) {
    return px * 96 / PPI; }
function pt2px(pt) {
    return pt * PPI / 96; }
function write_ws_xml_data(ws, opts, idx, wb) {
   
	var o = [], r = [], range = safe_decode_range(ws['!ref']), cell="", ref, rr = "", cols = [], R=0, C=0, rows = ws['!rows'];
	var dense = Array.isArray(ws);
	var params = ({
   r:rr}), row, height = -1;
	for(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);
	for(R =
  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 44
    评论
要修改导出的Excel表格中的字体颜色,可以使用 `xlsx-style` 库提供的 `createStyle` 方法,创建一个包含字体颜色信息的样式对象,然后将该样式对象应用到需要设置字体颜色的单元格上。 以下是一个示例代码: ```javascript import XLSX from 'xlsx-style'; import { writeFileSync } from 'fs'; const data = [ ['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male'], ['Charlie', 35, 'Male'], ]; // 创建包含字体颜色的样式对象 const style = XLSX.utils.createStyle({ font: { color: { rgb: 'FF0000' } }, // 设置字体颜色为红色 }); // 将样式应用到第二行第一列的单元格 const cell = { s: { r: 1, c: 0 }, e: { r: 1, c: 0 } }; // 选取第二行第一列的单元格 const sheet = XLSX.utils.aoa_to_sheet(data); sheet[cell.s] = { ...sheet[cell.s], s: style }; // 应用样式到单元格上 // 导出Excel文件 const book = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(book, sheet); const buffer = XLSX.write(book, { type: 'buffer' }); writeFileSync('output.xlsx', buffer); ``` 在上面的代码中,我们首先使用 `createStyle` 方法创建了一个样式对象,其中通过 `font.color.rgb` 属性设置字体颜色为红色。然后,我们使用 `aoa_to_sheet` 方法将数据转换为工作表对象,选取第二行第一列的单元格,并将样式应用到该单元格上。最后,使用 `write` 方法将工作簿对象导出为Excel文件。 需要注意的是,`xlsx-style` 库仅支持导出 `.xlsx` 格式的Excel文件,如果需要导出 `.xls` 格式的Excel文件,可以考虑使用其他库,如 `node-xlsx`。
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值