明树Git Lab

Commit 7912bdfb authored by zfp1's avatar zfp1

up

parent e69f4187
Pipeline #104201 passed with stage
in 3 seconds
......@@ -77,24 +77,9 @@ async function getXmtzzjllTem({ startYear, endYear, tampName, projectId }) {
return buffer;
}
async function getExcelTemplate(req, res, next) {
try {
let { tampName, projectId, startYear, endYear } = req.query;
startYear = startYear || new Date().getFullYear();
endYear = endYear || Number(startYear + 33);
let keyName = {
xmtzzjll: "项目投资资金流量表"
}
async function getTjjh({ startYear, endYear, projectId, tampName }) {
const workbook = new ExcelJS.Workbook();
let buffer;
if (tampName === 'xmtzzjll') { // 项目投资资金流量表
buffer = await getXmtzzjllTem({ startYear, endYear, tampName, projectId });
} else if (tampName === 'tjjh') { // 投决计划模板{
if (!startYear || !endYear) {
errorMessage.paramsError.message = "当前模板开始年份和结束年份不能为空";
return res.sendError(errorMessage.paramsError);
}
// 1. 读取空模板文件
const inputFilePath = path.join(__dirname, '../public/templates/投决计划.xlsx');
// 2. 处理excel 文件,动态生成表格
await workbook.xlsx.readFile(inputFilePath);
......@@ -156,17 +141,23 @@ async function getExcelTemplate(req, res, next) {
cell.border = BLACK_BORDER; //边框
});
});
// 3. 将处理后的文件发送给前端
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent('项目投资资金流量表.xlsx'));
const buffer = await workbook.xlsx.writeBuffer();
// 发送文件并结束响应
res.end(buffer);
}
return buffer;
}
else {
res.status(400).json({ message: '未知的模板名称' });
async function getExcelTemplate(req, res, next) {
try {
let { tampName, projectId, startYear, endYear } = req.query;
startYear = Number(startYear) || new Date().getFullYear();
endYear = endYear || Number(startYear + 33);
let keyName = {
tjjh: "投决计划",
xmtzzjll: "项目投资资金流量表",
xmzbjxjll: "项目资本金现金流量表",
njfxjll: "能建方现金流量表",
lrb: "利润表"
}
let buffer = await getXmtzzjllTem({ startYear, endYear, tampName, projectId, keyName });
// 3. 将处理后的文件发送给前端
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(`${keyName[tampName]}.xlsx`));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment