gpt4 book ai didi

javascript - react 中的 Xlsx sheetname 长度超过 31 个字符

转载 作者:行者123 更新时间:2023-12-04 20:48:54 26 4
gpt4 key购买 nike

我正在使用 react 从数据库中获取表数据并将其导出为 excel 并将 excel 的标题作为表名。但如果 excel 文件名超过 31 个字符,我将面临问题,则无法下载工作表。并在浏览器控制台输出中抛出错误。

Uncaught Error: Sheet names cannot exceed 31 chars
这是我下面的代码
var workbook=XLSX.utils.book_new();
workbook.SheetNames.push(title); //title: tablename
var workSheet=XLSX.utils.aoa_to_sheet(tableData); //tableData: data from Database
workbook.Sheets[title]=workSheet;
var output=XLSX.write(workbook, {bookType:'xlsx', type:'binary'});
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(output)], {type:"application/octet-stream"}), title + '.xlsx');
编辑:
我不想更改工作表名称。即使工作表名称超过 31 个字符,也只想对下载使用react

最佳答案

通过进行以下更改解决

var workbook=XLSX.utils.book_new();
//workbook.SheetNames.push(title); //title: tablename
var workSheet=XLSX.utils.aoa_to_sheet(tableData); //tableData: data from Database
//workbook.Sheets[title]=workSheet;
XLSX.utils.book_append_sheet(workbook, workSheet, "Test"); // This line solve the problem
var output=XLSX.write(workbook, {bookType:'xlsx', type:'binary'});
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(output)], {type:"application/octet-stream"}), title + '.xlsx');

关于javascript - react 中的 Xlsx sheetname 长度超过 31 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70065014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com