读取二维码作为缓冲区并保存在Excel
Read QR code as a buffer and save it in Excel
我正在使用以下代码生成二维码并将其保存在 Excel 文件中。我正在使用 qrcode and exceljs 库。 excel 文件已生成,但没有预期的二维码。
app.use('/api/qr/:content', async (req, res) => {
try {
const workbook = new ExcelJS.Workbook();
const sheet = workbook.addWorksheet('Sheet 1');
const content = req.params.content;
const bufferImage = await QRCode.toDataURL(content, {
type: 'image/png',
width: 200,
});
const imageId2 = workbook.addImage({
buffer: Buffer.from(bufferImage),
extension: 'png'
});
sheet.addImage(imageId2, {
tl: { col: 0, row: 0 },
ext: { width: 200, height: 200 }
});
await workbook.xlsx.writeFile('ExcelFile.xlsx');
return res.send({ data: 'ok' });
} catch (err) {
console.error('Failed to return content', err);
}
});
所以想法是在缓冲区中生成 QR 码并将其作为图像添加到 excel 文件中。
解决了。必须将二维码读取方法从 DataURL 更改为 toBuffer。
const content = req.params.content;
const bufferImage = await QRCode.toBuffer(content, {
type: 'png',
errorCorrectionLevel: 'H',
});
const imageId2 = workbook.addImage({
buffer: bufferImage,
extension: 'png'
});
我正在使用以下代码生成二维码并将其保存在 Excel 文件中。我正在使用 qrcode and exceljs 库。 excel 文件已生成,但没有预期的二维码。
app.use('/api/qr/:content', async (req, res) => {
try {
const workbook = new ExcelJS.Workbook();
const sheet = workbook.addWorksheet('Sheet 1');
const content = req.params.content;
const bufferImage = await QRCode.toDataURL(content, {
type: 'image/png',
width: 200,
});
const imageId2 = workbook.addImage({
buffer: Buffer.from(bufferImage),
extension: 'png'
});
sheet.addImage(imageId2, {
tl: { col: 0, row: 0 },
ext: { width: 200, height: 200 }
});
await workbook.xlsx.writeFile('ExcelFile.xlsx');
return res.send({ data: 'ok' });
} catch (err) {
console.error('Failed to return content', err);
}
});
所以想法是在缓冲区中生成 QR 码并将其作为图像添加到 excel 文件中。
解决了。必须将二维码读取方法从 DataURL 更改为 toBuffer。
const content = req.params.content;
const bufferImage = await QRCode.toBuffer(content, {
type: 'png',
errorCorrectionLevel: 'H',
});
const imageId2 = workbook.addImage({
buffer: bufferImage,
extension: 'png'
});