大家好吗?希望一切都很好。 预先感谢您的支持。
我需要通过word,excel或html创建发票。无论我选择做什么,都需要为此创建一个通用模板。由于我有一些数据需要写入特定的位置。然后,我需要将此发票转换为PDF。几乎是标准的事情。
现在,这就是我的工作方式,但是我想听听社区如何解决这个问题。
这就是我的做法:
我有一个由两部分组成的Excel模板,一个是工作表一侧的发票,另一个是可以重写我需要重写的值的表格,还有一个Excel公式,可以在其中使用concatinate
将发票中的值替换为尺寸表。
现在,我在nodejs中使用此代码重写工作簿并转换为pdf。如您所见,我正在使用xlsx模块和html-pdf。
问题在于let excel_html = XLSX.utils.sheet_to_html(worksheet);
不保留工作表的样式或格式。
请参阅Changing a cell value in a xlsl sheet while keeping the format nodejs
这是代码
const moment = require('moment');
const XLSX = require('xlsx');
const pdf = require('html-pdf');
let workbook = XLSX.readFile('./templates/Interest_Invoice_Notification_TEMPLATE_HFMX.xlsx');
const addrees_of_initial_date = 'N2';
const addrees_of_end_date = 'N3';
const addrees_of_normal_basis = 'N4';
const addrees_of_interest_rate = 'N5';
const addrees_of_currency = 'N6';
let worksheet = workbook.Sheets[workbook.SheetNames[0]];
let desired_cell = worksheet[address_of_series_number];
let excel_html = XLSX.utils.sheet_to_html(worksheet);
console.log(typeof excel_html)
const options = { format: 'Letter'};
pdf.create(excel_html, options).toFile('./pdf/Interest_Invoice_Notification_TEMPLATE_HFMX.pdf', function(err, res) {
if(err) return console.log(err);
console.log(res);
})
现在,我需要能够保留格式。我正在考虑编写自己的html来创建模板,并使用车把或其他模板引擎将数据传递到此html模板。
我也可以编写一个单词模板,并可能使用`docxtemplater` npm模块。
有什么建议吗?