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文件。

回到顶部