当前位置: 首页 > news >正文

ejsExcel API参考手册:所有函数和配置项的详细说明

ejsExcel API参考手册:所有函数和配置项的详细说明

【免费下载链接】ejsExcelnodejs excel template engine. node export excel项目地址: https://gitcode.com/gh_mirrors/ej/ejsExcel

ejsExcel是一个功能强大的Node.js Excel模板引擎,它允许开发者通过模板文件快速生成Excel文档。本参考手册将详细介绍ejsExcel的核心函数、配置选项和使用方法,帮助开发者充分利用这个工具提升Excel文件生成效率。

核心功能函数

1. renderExcel - 异步渲染Excel模板

renderExcel是ejsExcel的核心函数,用于异步渲染Excel模板并生成最终的Excel文件缓冲区。

函数定义

async function renderExcel(exlBuf, _data_, opt)

参数说明

  • exlBuf(Buffer):Excel模板文件的缓冲区
  • _data_(Object):模板渲染所需的数据对象
  • opt(Object):渲染选项配置

返回值

  • Promise :生成的Excel文件缓冲区

使用示例

const fs = require('fs'); const ejsExcel = require('ejsExcel'); async function generateExcel() { const templateBuf = fs.readFileSync('template.xlsx'); const data = { title: '销售报表', items: [...] }; const excelBuf = await ejsExcel.renderExcel(templateBuf, data); fs.writeFileSync('output.xlsx', excelBuf); }

2. renderExcelCb - 回调风格的Excel渲染

对于习惯使用回调函数的开发者,ejsExcel提供了renderExcelCb函数,它是renderExcel的回调风格版本。

函数定义

function renderExcelCb(exlBuf, _data_, opt, callback)

参数说明

  • exlBuf(Buffer):Excel模板文件的缓冲区
  • _data_(Object):模板渲染所需的数据对象
  • opt(Object):渲染选项配置(可选)
  • callback(Function):渲染完成后的回调函数

回调函数参数

  • err(Error):错误信息,如果渲染成功则为null
  • buf2(Buffer):生成的Excel文件缓冲区

3. getExcelArr - 解析Excel文件为数组

getExcelArr函数用于将Excel文件解析为JavaScript数组,方便在模板中处理表格数据。

函数定义

async function getExcelArr(buffer)

参数说明

  • buffer(Buffer):Excel文件的缓冲区

返回值

  • Promise :解析后的Excel数据数组

单元格操作函数

4. charToNum - 列字母转数字

将Excel列字母(如"A"、"BC")转换为对应的数字索引。

函数定义

function charToNum(str)

参数

  • str(String):Excel列字母

返回值

  • Number:对应的列索引(从0开始)

示例

charToNum("A"); // 0 charToNum("B"); // 1 charToNum("AA"); // 26

5. charPlus - 列字母递增

将Excel列字母递增,类似于Excel中的列自动填充功能。

函数定义

function charPlus(str, num)

参数

  • str(String):基础列字母
  • num(Number):递增数量

返回值

  • String:递增后的列字母

示例

charPlus("A", 1); // "B" charPlus("Z", 1); // "AA" charPlus("AB", 3); // "AE"

日期处理函数

6. date2Num - 日期转Excel序列号

将JavaScript日期对象转换为Excel日期序列号。

函数定义

function date2Num(date)

参数

  • date(Date):JavaScript日期对象

返回值

  • Number:Excel日期序列号

7. num2Date - Excel序列号转日期

将Excel日期序列号转换为JavaScript日期对象。

函数定义

function num2Date(valTmp)

参数

  • valTmp(Number):Excel日期序列号

返回值

  • Date:对应的JavaScript日期对象

模板辅助函数

8.ps- 处理字符串单元格

在模板中用于处理字符串类型的单元格数据,自动处理XML转义和共享字符串。

函数定义

data._ps_ = function (str, buf)

使用示例

<%= _ps_(data.title, buffer) %>

9.pi- 处理数字单元格

在模板中用于处理数字类型的单元格数据,支持日期格式化。

函数定义

data._pi_ = function (str, buf)

使用示例

<%= _pi_(data.price, buffer) %>

10.pf- 处理公式单元格

在模板中用于处理Excel公式,自动设置单元格类型为公式。

函数定义

data._pf_ = function (str, buf)

使用示例

<%= _pf_("SUM(A1:A10)", buffer) %>

工作表操作函数

11.hideSheet- 隐藏工作表

在模板中隐藏指定的工作表。

函数定义

data._hideSheet_ = function (fileName)

参数

  • fileName(String):工作表文件名

使用示例

<% _hideSheet_("xl/worksheets/sheet2.xml") %>

12.showSheet- 显示工作表

在模板中显示指定的工作表(如果之前被隐藏)。

函数定义

data._showSheet_ = function (fileName)

参数

  • fileName(String):工作表文件名

13.deleteSheet- 删除工作表

从Excel文件中删除指定的工作表。

函数定义

data._deleteSheet_ = function (fileName)

参数

  • fileName(String):工作表文件名

图片和二维码函数

14.img- 插入图片

在Excel工作表中插入图片。

函数定义

data._img_ = async function(imgOpt, fileName, rowNum, cellNum)

参数

  • imgOpt(Object|String|Buffer):图片选项或图片路径或图片缓冲区
  • fileName(String):目标工作表文件名
  • rowNum(Number):图片起始行号
  • cellNum(Number):图片起始列号

15.qrcode- 生成二维码

在Excel工作表中生成并插入二维码图片。

函数定义

data._qrcode_ = async function (imgOpt, fileName, rowNum, cellNum)

参数

  • imgOpt(Object):二维码选项,必须包含text属性
  • fileName(String):目标工作表文件名
  • rowNum(Number):二维码起始行号
  • cellNum(Number):二维码起始列号

使用示例

<% _qrcode_({text: 'https://example.com', margin: 2}, 'xl/worksheets/sheet1.xml', 5, 3) %>

配置选项

渲染选项 (opt)

在调用renderExcelrenderExcelCb时,可以传入配置选项对象,控制渲染行为:

  • notRenderSheets(Array):指定不需要渲染的工作表名称数组
  • cachePath(String):缓存路径,用于缓存模板解析结果提高性能

示例

const opt = { notRenderSheets: ['Sheet2', 'Sheet3'], cachePath: './cache' }; const excelBuf = await ejsExcel.renderExcel(templateBuf, data, opt);

过滤器函数

ejsExcel提供了一系列内置过滤器,位于filters.js文件中,可以在模板中直接使用:

  • first- 获取数组第一个元素
  • last- 获取数组最后一个元素
  • capitalize- 首字母大写
  • downcase- 转为小写
  • upcase- 转为大写
  • sort- 排序数组
  • sort_by- 按指定属性排序
  • size/length- 获取长度
  • plus/minus/times/divided_by- 数学运算
  • join- 数组转字符串
  • truncate- 截断字符串
  • replace- 替换字符串
  • prepend/append- 添加元素到数组
  • map- 数组映射
  • reverse- 反转数组
  • get- 获取对象属性
  • json- 转为JSON字符串

使用示例

<%= data.names | join(', ') %> <%= data.price | plus(10) | times(0.8) %> <%= data.description | truncate(50) %>

错误处理

在使用ejsExcel时,建议使用try/catch捕获可能的错误:

try { const excelBuf = await ejsExcel.renderExcel(templateBuf, data); fs.writeFileSync('output.xlsx', excelBuf); } catch (err) { console.error('Excel生成失败:', err); }

常见错误包括:模板文件损坏、数据格式错误、工作表操作不当等。详细错误信息会帮助定位问题所在。

安装与使用

要使用ejsExcel,首先需要通过npm安装:

npm install ejsExcel

或者直接克隆仓库:

git clone https://gitcode.com/gh_mirrors/ej/ejsExcel

基本使用流程:

  1. 准备Excel模板文件
  2. 准备渲染数据
  3. 调用ejsExcel渲染函数
  4. 保存生成的Excel文件

ejsExcel为Node.js开发者提供了强大的Excel生成能力,通过模板引擎的方式极大简化了Excel文件的创建过程。无论是生成报表、导出数据还是创建复杂的Excel文档,ejsExcel都能满足你的需求。

【免费下载链接】ejsExcelnodejs excel template engine. node export excel项目地址: https://gitcode.com/gh_mirrors/ej/ejsExcel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1236663/

相关文章:

  • 计算机毕业设计之医药管理系统
  • 清远山区房屋大水蚁频发?白蚁无损勘测与源头根治科普指南 - 鲁顺
  • 深度解析H5AG46DXNDX117N:SK海力士16Gb DDR4-3200 x16 SDRAM高密度颗粒
  • APIC-EM API开发指南:通过python_code_samples_network获取网络 inventory 数据
  • 2026年7月最新江诗丹顿无锡江南大悦城维修保养服务电话 - 江诗丹顿官方服务中心
  • NEURON软件中神经元形态结构创建指南
  • 单片机原理与运用
  • 现金分红后净值突然下跌:量化软件应怎样处理除息日
  • 10分钟上手HardHacker Themes:JetBrains IDEs主题配置全攻略
  • 内存泄漏系列专题分析之三十六 : 开机内存占用超标分析二:​vendor.qti.camera.provider-service_64进程​超标10M
  • DeepONet安装指南:Python与DeepXDE环境配置的简单步骤
  • 国家中小学智慧教育平台电子课本解析工具:5分钟快速下载完整教程
  • 亲身到店探访北京爱彼官方售后服务中心|全部地址与售后电话(2026年7月最新) - 爱彼中国官方服务中心
  • Ubuntu系统清理与维护:使用ubuntu-post-install提升系统性能
  • 终极指南:如何使用jQuery QueryBuilder创建强大的可视化查询界面
  • Meteor Base项目结构分析:理解现代Meteor应用的目录组织
  • Spring Boot 3 + Vue 3 + MySQL 水果超市进销存管理系统源码实战前后端分离
  • 【AI工作流效率翻倍的7个隐藏杠杆】:20年资深架构师首次公开内部SOP清单
  • 如何使用MLEM将模型部署到Kubernetes集群?详细步骤与最佳实践
  • CNN时间序列预测实战:高效单变量模型解析
  • Compose主题与样式:Why-Not-Compose中的深色模式实现方案
  • Line Awesome终极指南:快速掌握1380+免费线条图标的使用技巧
  • 内存泄漏系列专题分析之三十五:开机内存性能优化之一:Camx进程启动提前加载so库
  • 露易丝·海的诗歌15
  • 响应式设计实践:如何让jQuery.Flipster在移动端与桌面端均呈现完美效果
  • AI办公工具横向对比:谁真正懂中文职场?基于217个真实办公任务(会议纪要/周报生成/合同审查/多轮邮件撰写)的盲测结果揭晓
  • 从崩溃到流畅:WeChatExtension-ForMac插件深度调试指南
  • 零GC高性能动画库:LitMotion让你的Unity游戏流畅度提升20倍![特殊字符]
  • SRS Docker部署最佳实践:简化你的流媒体服务器运维
  • 快速上手React Native ECharts:5分钟构建你的第一个移动端图表