Kay*_*ian 11 javascript sheetjs
我有一个对象数组。默认情况下, sheet_to_json 使用对象键作为标题。但是,我需要在不显式修改对象数组的情况下重命名这些标题。
这可能吗?
jua*_*_yl 17
此代码基于Angel Alvarez 的答案并添加了一个工作演示:
let arr = [
{ firstName: 'Jack', lastName: 'Sparrow', email: 'abc@example.com' },
{ firstName: 'Harry', lastName: 'Potter', email: 'abc@example.com' },
];
let Heading = [['FirstName', 'Last Name', 'Email']];
//Had to create a new workbook and then add the header
const wb = XLSX.utils.book_new();
const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet([]);
XLSX.utils.sheet_add_aoa(ws, Heading);
//Starting in the second row to avoid overriding and skipping headers
XLSX.utils.sheet_add_json(ws, arr, { origin: 'A2', skipHeader: true });
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
XLSX.writeFile(wb, 'filename.xlsx');
Run Code Online (Sandbox Code Playgroud)
小智 11
用下面替换最后一行。
XLSX.utils.sheet_add_json(ws, data, {skipHeader: true, origin: "A2"});
Run Code Online (Sandbox Code Playgroud)
我正在分享我找到的解决方案
// Using same variables as the above answer
var Heading = [
["FirstName", "Last Name", "Email"],
];
var Data = [
{firstName:"Jack", lastName: "Sparrow", email: "abc@example.com"},
{firstName:"Harry", lastName: "Potter", email: "abc@example.com"},
];
//Had to create a new workbook and then add the header
const ws = XLSX.utils.book_new();
XLSX.utils.sheet_add_aoa(ws, Heading);
//Starting in the second row to avoid overriding and skipping headers
XLSX.utils.sheet_add_json(ws, Data, { origin: 'A2', skipHeader: true });
Run Code Online (Sandbox Code Playgroud)
我做了这个工作,因为上述两种方法都不适合我
let EXCEL_EXTENSION = '.xlsx';
let worksheet: XLSX.WorkSheet;
let customHeader = true;
let sheetName = 'My Sheet 1';
if (customHeader) {
const headers: any = { Cust: 'Customer Name', Addr1: 'Address 1' };
this.data.unshift(headers); // if custom header, then make sure first row of data is custom header
worksheet = XLSX.utils.json_to_sheet(json, { skipHeader: true });
} else {
worksheet = XLSX.utils.json_to_sheet(json);
}
const workbook = XLSX.utils.book_new();
const fileName = 'myExcelFile_Export_' + moment().format('MM-DD-YYYY_hh:mm:ss').toString() + EXCEL_EXTENSION;
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
XLSX.writeFile(workbook, fileName);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13682 次 |
| 最近记录: |