Nodejs商业智能报表使用ejsExcel

Nodejs商业智能报表使用ejsExcel

nodejs导出Excel, Excel模板引擎

通过Excel模板导出Excel npm install ejsexcel 安装nodejs之后,执行test目录下面的test.bat

auto: Sail 黄智勇 QQ: 151263555 QQ群: 470988427 email: 151263555@qq.com https://github.com/sail-sail/ejsExcel http://git.oschina.net/ccteams/ejsExcel

模板: 1.png

加数据渲染之后: 2.png


60 回复

点赞


顶起加点赞- -~

真的很好用。唯一缺点是在MAC上跑不起来。苦了我那些apple党同事

[@151263](/user/151263) 我有MAC 但用不惯``

不错,要试试。

不错 顶起

[@bsspirit](/user/bsspirit) 抱拳, 高手的表扬, 我的荣幸

顶一下

excel模板收藏 自豪地采用 CNodeJS ionic

很好用的东西,顶

很给力啊,感谢分享!

好棒啊

赞,可以是符合表头吗

[@xiashulin](/user/xiashulin) 不管是不是表头,模板+数据=导出, 动态数据可以是任意的javascript, 模板可以是任意格式的Excel, 里面可以有任意的公式,宏等等

[@151263](/user/151263) mac 下面好像还是用不起来啊

Excel文件格式开源了么?

[@chapgaga](/user/chapgaga) 开源了,Excel2003是二进制的,有英文文档. Excel2007 之后,微软把office格式改为zip文件里面的xml文档, 叫OpenXML格式,并且被立为国际标准

[@151263](/user/151263) 你看规范,然后实现,这个有点太底层了吧,呵呵

楼主方便给个QQ交流一下嘛

好东西,顶一个~

请教一下,fs.writeFileSync(fileName, exlBuf2)--这种导出excel方式是服务器输出,我怎么客户端输出呢?

这个方式导出的excel,导到了服务器端,想在客户端导出:求指教 ejsExcel.renderExcelCb(exlBuf, data, function(exlBuf2){ console.log(“生成test2.xlsx”); fs.writeFileSync(fileName, exlBuf2);

    });

[@lvyanjun](/user/lvyanjun) 可以采用,koa框架,或者Express用来做http服务器, 或者自己用nodejs的http模块实现, http.createServer(…

很赞。。npm中好像有这个功能了。。谢谢

ejsExcel.renderExcelCb(exlBuf, data, function(exlBuf2){ console.log(“生成test2.xlsx”); res.end(exlBuf2); }); 已经ok 直接这样写, res.end(exlBuf2); 我这就OK了~

我发现有这样一个问题,如果模版太大,比如模版有70多kb,那么导出需要花大约30秒的时间?这是为什么呢?该如何处理呢?

[@lvyanjun](/user/lvyanjun) 因为为了保证导出速度要快, 预编译模板是个比较费CPU的操作, 到时我加入缓存机制,如果模板MD5不变,则编译之后的模板不再重复编译,就可以解决这个问题了

回复以马克

qwdqdqwdqwd

上回忘mark了

这个不错啊!!赞!!!!

感谢楼主提供这么好的产品和解决方案!

[@ledtest](/user/ledtest) 不客气,贡献微薄力量!

这么牛 自豪地采用 CNodeJS ionic

👍

来自酷炫的 CNodeMD

请问现在mac上可以用吗

直接输出 table 方便呀

早点看到就好了 自豪地采用 CNodeJS ionic

MARK PS:自己收藏的帖子在哪里看?

mark,支持

mark,学习学习

Nodejs商业智能报表使用ejsExcel

摘要

本文介绍如何使用 ejsExcel 这个库来实现基于 Node.js 的商业智能报表导出功能。ejsExcel 是一个用于生成 Excel 文件的库,它允许你通过定义 Excel 模板,并在模板中嵌入数据来快速生成报表。

安装

首先需要在你的 Node.js 项目中安装 ejsExcel:

npm install ejsexcel

使用 ejsExcel 导出 Excel 报表

示例代码

假设我们有一个简单的数据集,我们想将其导出到一个 Excel 文件中。

  1. 创建模板文件

    创建一个名为 template.xlsx 的文件,这是一个普通的 Excel 文件,但是可以在单元格中插入一些特殊的标记,这些标记将被替换为实际的数据。

    | 编号 | 姓名   | 年龄 |
    | ---- | ------ | ---- |
    | ${id} | ${name} | ${age} |
    
  2. 编写 Node.js 脚本

    下面是一个简单的 Node.js 脚本,用于读取模板文件并填充数据。

    const ejsExcel = require('ejsexcel');
    
    // 数据数组
    const data = [
      { id: '001', name: '张三', age: 25 },
      { id: '002', name: '李四', age: 30 },
      { id: '003', name: '王五', age: 28 }
    ];
    
    // 读取模板文件
    const templateBuffer = fs.readFileSync('./template.xlsx');
    
    // 渲染模板
    const excelBuffer = ejsExcel.render(templateBuffer, data);
    
    // 输出到新的 Excel 文件
    fs.writeFileSync('./output.xlsx', excelBuffer);
    
  3. 运行脚本

    在终端中运行脚本:

    node your_script.js
    

    运行后,你会在当前目录下得到一个名为 output.xlsx 的文件,其中包含了根据模板和数据生成的报表。

总结

通过上述步骤,我们可以看到使用 ejsExcel 库可以方便地将数据填充到 Excel 模板中,从而生成格式化的商业智能报表。这种方式不仅提高了开发效率,还使得报表生成变得更加灵活和可定制化。

捐赠鼓励支持此项目

如果您觉得这个项目对您的工作或学习有所帮助,欢迎通过以下方式捐赠支持:

希望本文能帮助您更好地理解和使用 ejsExcel 库进行商业智能报表的生成。

要在Node.js中使用ejsExcel来生成包含业务智能报表的Excel文件,你需要首先确保已经正确安装了ejsExcel库。ejsExcel允许你在服务器端使用EJS模板语法来生成Excel文件,这使得你可以灵活地定制报表的样式和内容。

步骤

  1. 安装ejsExcel: 使用npm安装ejsExcel包。

    npm install ejsexcel
    
  2. 创建模板: 创建一个EJS模板文件,用于定义Excel文件的结构。例如,可以创建一个名为report.ejs的文件。

    <!-- report.ejs -->
    <table>
      <tr>
        <th>名称</th>
        <th>值</th>
      </tr>
      <% for (let row of data) { %>
      <tr>
        <td><%= row.name %></td>
        <td><%= row.value %></td>
      </tr>
      <% } %>
    </table>
    
  3. 编写Node.js代码来渲染模板: 使用ejsExcel库来读取模板文件,并将数据渲染到Excel文件中。

    const ejsExcel = require('ejsexcel');
    const ejs = require('ejs');
    
    // 示例数据
    const data = [
      { name: '收入', value: 10000 },
      { name: '支出', value: 8000 }
    ];
    
    // 渲染模板并生成Excel文件
    ejs.renderFile(__dirname + '/report.ejs', { data }, {}, function(err, str) {
      if (err) {
        console.log(err);
        return;
      }
    
      // 输出到Excel文件
      ejsExcel(str).pipe(require('fs').createWriteStream('./output.xlsx'));
    });
    

解释

  • ejs.renderFile()方法用于从文件中读取模板,并将数据插入到模板中。
  • ejsExcel(str)函数接收EJS渲染后的HTML字符串,并将其转换为Excel文件格式。
  • 最后,通过pipe方法将生成的Excel文件输出到本地文件系统中。

运行测试

  • 确保report.ejs模板文件与你的Node.js脚本在同一目录下。
  • 运行脚本,生成的Excel文件将保存在当前工作目录下的output.xlsx文件中。

这种方法能够帮助你在Node.js环境中高效地生成包含业务智能报表的Excel文件。

回到顶部