Nodejsアプリケーションでexceljs npmを使用して、フォーマット済みデータのExcelファイルを生成しました。
期待どおりに機能し、Excel ファイルをダウンロードしています。ファイルは、MS Excel 2007 を除くすべてのソフトウェアで開かれています。下の画像のようなエラーが表示されます。[はい] を押すと、新しいシートが開きます。エラーは以下のスクリーンショットにあります
以下のように使用したコード。
exports.getDocExcel = function(req, res) {
var workbook = new Excel.Workbook();
var worksheet = workbook.addWorksheet('Manage_Customer');
worksheet.columns = [{
header: 'SoldTo_Customer',
key: 'SoldTo_Customer',
width: 20
},
{
header: 'CDC_CustomerID',
key: 'CDC_CustomerID',
width: 20
},
{
header: 'CDC_Name',
key: 'CDC_Name',
width: 20
},
{
header: 'CDC_City',
key: 'CDC_City',
width: 20
},
{
header: 'CDC_State',
key: 'CDC_State',
width: 20
},
{
header: 'CDC_Zip',
key: 'CDC_Zip',
width: 20
},
];
var fileName = "sample.xlsx";
var tempFilePath = __dirname + fileName;
workbook.xlsx.writeFile(tempFilePath).then(function() {
fs.readFile(tempFilePath, function(err, data) {
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
res.write(data);
res.end();
});
});
};
以下のサーバーページ
const express = require("express");
const app = express();
const bodyParser = require('body-parser');
const path = require('path');
const dotenv = require('dotenv');
const chalk = require('chalk');
const multipart = require("connect-multiparty");
var sql = require("mssql");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static( __dirname + "/public"));
dotenv.load({ path: '.env.Config' });
app.set('port', process.env.App_PORT || 3000);
app.listen(app.get('port'), () => {
console.log('%s server running on port', chalk.green('✓'), app.get('port'));
console.log(' Press CTRL-C to stop\n');
});
const pdfController = require('./public/controllers/pdf.js');
app.get("/doc-to-excel",pdfController.getDocExcel);
この問題を解決するには?