NOde.js使用xlsx-js-style模块加样式

在上篇中,我们掌握了Node.js的Sheetjs(Node.js的xlsx模块)对EXCEL进行文件读写,但遗憾的是Sheetjs社区支持版无法传递EXCEL原有样式。

即便我们去读有样式的EXCEL文件,再按照读取的样式写入文件也没有样式保留。

如果需要定制EXCEL样式,我们需要使用xlsx-js-style,能够创建带有基本样式选项的Excel电子表格。

首先来看官方文档的例子和说明:

本篇只做学习记录,建议大家要处理EXCEL直接用exceljs 模块,比这个好用多了

一、文档学习

引入模块

js 复制代码
npm install xlsx-js-style

核心API

完全移植Sheetjs(Node.js的xlsx模块)核心功能API

基于sheetjs0.18.5

样式API

js 复制代码
const XLSX = require('xlsx-js-style')
// 第1步: 创建一个新的工作簿(workbook)
const 工作簿 = XLSX.utils.book_new();

// 第2步: 创建数据行和样式
let row = [
	{ v: "字体Courier: 24", t: "s", s: { font: { name: "Courier", sz: 24 } } },
	{ v: "边框 和 颜色", t: "s", s: { font: { bold: true, color: { rgb: "FF0000" } } } },
	{ v: "填充颜色", t: "s", s: { fill: { fgColor: { rgb: "E9E9E9" } } } },
	{ v: "换\n行", t: "s", s: { alignment: { wrapText: true } } },
];

// 第3步: 创建具有一行数据的工作表;将工作表添加到工作簿
const 工作表 = XLSX.utils.aoa_to_sheet([row]);
XLSX.utils.book_append_sheet(工作簿, 工作表, "表名");

// 第4步: 写入Excel文件(如不存在则创建)
XLSX.writeFile(工作簿, "文件名.xlsx");

单元格样式属性

单元格样式由OpenXML结构近似的样式对象指定。

目前支持的样式属性包括:
alignment, border, fill, font, numFmt

  • border、fill和font的颜色是通过名称/值对象进行指定的,可以使用以下选项之一:
    • rgb:十六进制RGB值,例如:{rgb: "FFCC00"},表示红色。
    • theme:主题颜色索引,例如:{theme: 4},表示索引为4的主题颜色(主题颜色索引从0开始)。Excel中内置了一些主题颜色,可以根据索引来选择。
    • tint:通过百分比调整主题颜色的色调,例如:{theme: 1, tint: 0.4},表示将索引为1的主题颜色调亮40%。

BORDER_STYLE 边框样式属性

边框样式属性可以是以下值之一:

  • dashDotDot:虚线点线
  • dashDot:虚线点划线
  • dashed:虚线
  • dotted:点划线
  • hair:极细点划线
  • mediumDashDotDot:中等点划线点线
  • mediumDashDot:中等点划线
  • mediumDashed:中等虚线
  • medium:中等线
  • slantDashDot:倾斜点划线
  • thick:粗线
  • thin:细线

合并边框注意

对于合并区域的边框,需要在合并区域内的每个单元格中进行指定。

例如,要将一个盒子边框应用于3x3个单元格的合并区域,需要为8个不同的单元格指定边框样式:

  • 左侧边框(左边的三个单元格)
  • 右侧边框(右边的单元格)
  • 顶部边框(顶部的单元格)
  • 底部边框(左边的单元格)
相关推荐
Autumn_ing4 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
keyipatience5 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
朱涛的自习室5 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
java1234_小锋8 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天8 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源
流星。。方8 小时前
小团队官网SEO落地:前端语义化与静态生成的工程实践
前端·状态模式
小天源8 小时前
智叟云集系统架构解析:从品牌 AI 可见度监测到前后端协同
人工智能·react.js·系统架构·node.js·react·ai监测·ai品牌监测
用户530429765798 小时前
盘点危化品搬运诊断的6类工具与自处理边界判断
前端
curtain8 小时前
从古法编程到 Agent:我入行这两年,AI 改变了什么
前端·openai
zyfts8 小时前
10分钟自制Codex钉钉通知Skill:AI干完活自动钉钉提醒你
前端