[英]How can I export react table to excel file with custom title as a column
import React, { useEffect, useState } from 'react';
import * as XLSX from 'xlsx'
import { useQuery } from '@tanstack/react-query';
const Excl = ({userDatas}) => {
let xlDatas = []
const handleExportExcl = (userDatas) => {
userDatas.map(xlData => {
xlDatas.push(xlData)
})
const wb = XLSX.utils.book_new(),
ws = XLSX.utils.json_to_sheet(xlDatas)
XLSX.utils.book_append_sheet(wb, ws, "MySheet");
XLSX.writeFile(wb, "MyExcel.xlsx")
}
return (
<span onClick={() => handleExportExcl(userDatas)} ><span className='flex justify-center items-center'> <span className='mr-3'></span>EXCEL </span> </span>
);
};
export default Excl;
I want an excel sheet with the custom title as a column.我想要一个以自定义标题作为列的 Excel 工作表。 Here is my code.
这是我的代码。 I take userDatas from another component.
我从另一个组件中获取 userDatas。
This is the example in https://www.npmjs.com/package/xlsx-lite .这是https://www.npmjs.com/package/xlsx-lite中的示例。
import XLSX from 'xlsx-lite';
// Create a workbook
const xlsx = new XLSX();
// Add a sheet to workbook
const sheet = xlsx.sheet('Sheet Name');
// Change sheet styles
sheet.style({
rtl: true,
});
// Set values
sheet.row(1).col(1).set('foo');
sheet.cell(1, 2).set('bar');
sheet.set('baz', { row: 1, col: 3 });
sheet.cell(1, 4).set([
'r1',
['r2,c4', 'r2,c5', 'r2,c6'],
'r3',
])
// Get values
console.log(sheet.row(1).col(1).get()); // foo
console.log(sheet.get({ row: 1, col: 2 })); // bar
// Add styles
const someStyles = xlsx.style({
color: '#f00',
fontFamily: 'Baloo Bhaijaan',
fontWeight: 'bold',
fontSize: 14,
textDecoration: 'line-through',
fontStyle: 'italic',
backgroundColor: '#ff0',
textAlign: 'center',
verticalAlign: 'middle',
borderStyle: 'double',
borderColor: '#00f',
});
sheet.set('styled', {
row: 2,
col: 1,
style: someStyles,
});
// Set and get row height
sheet.row(2).height(100);
console.log(sheet.row(2).height()); // 100
// Set and get column width
sheet.col(1).width(20);
console.log(sheet.col(1).width()); // 20
// Add filters
sheet.addFilter({
from: { row: 1, col: 1 },
to: { row: 7, col: 1 },
});
// Download the result
xlsx.save('test.xlsx');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.