使用nodejs导出excel文件

方法一:使用writeFile写文件后再用readFileSync读文件返回

var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var ws1 = workbook.addWorksheet('表名');
ws1.addRow('数据')
 workbook.xlsx.writeFile('文件路径及文件名').then(function(){
 rh.setHeader('Content-Type', 'application/vnd.openxmlformats');
 rh.setHeader('Content-Disposition', 'attachment; filename='文件名' );
 var exlBuf = fs.readFileSync(filepath + filename);
 rh.setBody(exlBuf);
setTimeout(function(){
fs.unlink('文件路径及文件名', function(err) {
 });
 }, 1000)
callback(null, rh);
});

方法二:使用xlsx.write的方式返回xlsx文件流

var Excel = require('exceljs');
const options = {
stream: res, 
useStyles: true,
useSharedStrings: true
};
var workbook = new Excel.stream.xlsx.WorkbookWriter(options);
var ws1 = workbook.addWorksheet('表名');
ws1.addRow('数据').commit()
workbook.commit()
sendWorkbook(workbook,res)
async function sendWorkbook(workbook, response) { 
response.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
response.setHeader("Content-Disposition", "attachment; filename='文件名');
await workbook.xlsx.write(response);
response.end();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容