Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件

简介: Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件


注意,前情提示:

本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》

传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客

在/api/demo/文件夹下面创建exportAndDownloadExcel.js

代码内容

const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router, xlsx = global.SG.xlsx;
module.exports = global.SG.router;
const excelData = [
    ["表头第一列", "表头第二列", "表头第三列"],
    ["第一行第一列", "第一行第二列", "第一行第三列"],
    ["第二行第一列", "第二行第二列", "第二行第三列"],
    ["第三行第一列", "第三行第二列", "第三行第三列"]];
const tempExcelFilePath = "./temp/download/{fileName}.xlsx";//临时存储下载导出文件的位置(定时一会儿后就会自动删除对应文件夹的文临时文件)
const exportExcelFileName = "强哥导出的文件名.xlsx";
const sheetName = "强哥的Sheet";
const mkdirs = $g.dir.mkdirsByFilePath;//递归创建文件夹目录(基于文件路径)
//导出Excel,必须使用get方式,在客户端用window.open直接访问接口就可以下载了
router.get("/demo/exportAndDownloadExcel", (req, res) => {
    const randomFilePath = tempExcelFilePath
        .replace(/{fileName}/g, `sgExportExcel-${$g.date.timestamp()}`);
    mkdirs(randomFilePath, () => {
            const buffer = xlsx.build([{name: sheetName, data: excelData}]);
            fs.writeFile(randomFilePath, buffer, err => {
                console.log(`${$g.date.nowtime()}写入&创建${randomFilePath}${err ? "失败" : "成功"}`);
                res.download(randomFilePath, exportExcelFileName, err => {
                    console.log(`${$g.date.nowtime()}下载${randomFilePath}${err ? "失败" : "成功"}`);
                    err || $g.dir.delayDestroyFile(randomFilePath);//延时60秒销毁服务器文件
                });
            });
        }
    );
});

在index.js最后一行加入

app.use(API_PATH, require(`.${API_PATH}/demo/exportAndDownloadExcel`));//导出并下载Excel

运行

cnpm i node-xlsx & node index


相关文章
|
1月前
|
数据采集 Web App开发 JavaScript
Puppeteer自动化:使用JavaScript定制PDF下载
在现代Web开发中,自动化工具如Puppeteer可显著提升效率并减少重复工作。Puppeteer是一款强大的Node.js库,能够控制无头Chrome或Chromium浏览器,适用于网页快照生成、数据抓取及自动化测试等任务。本文通过示例展示了如何使用Puppeteer自动化生成定制化的PDF文件,并介绍了如何通过配置代理IP、设置user-agent和cookie等技术增强自动化过程的灵活性与稳定性。具体步骤包括安装Puppeteer、配置代理IP、设置user-agent和cookie等,最终生成符合需求的PDF文件。此技术可应用于报表生成、发票打印等多种场景。
110 6
Puppeteer自动化:使用JavaScript定制PDF下载
|
1月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
35 0
|
13天前
|
缓存 负载均衡 监控
性能优化:Node.js高效服务器开发技巧与最佳实践
【10月更文挑战第29天】在Node.js服务器开发中,性能优化至关重要。本文介绍了几种高效开发的最佳实践,包括使用缓存策略、采用异步编程、实施负载均衡和性能监控。通过示例代码展示了如何实现这些技术,帮助开发者构建更快、更稳定的Node.js应用。
33 2
|
1月前
|
JSON JavaScript 前端开发
使用 Node.js 和 Express 构建 RESTful API 服务器
【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器
|
1月前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器
|
2月前
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
|
30天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
137 0
|
30天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
17 0
|
2月前
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
1月前
|
JavaScript 算法 内存技术
如何降低node.js版本(nvm下载安装与使用)
如何降低node.js版本(nvm下载安装与使用)

热门文章

最新文章