Ale*_*ody 1 javascript csv excel typescript reactjs
在解析数据并通过单独的函数加入后,我已经能够将 JSON 响应转换为 CSV,以便通过下面的函数下载。下面的函数运行良好,并且可以以我需要的正确日语格式下载 CSV 文件,这就是“编码”对象。我似乎无法弄清楚如何将 JSON 数据转换为 xlsx 文件以便在前端以类似的方式下载,或者将下面的 CSV 文件也转换为前端的 xlsx 以允许将同一文件下载为 xlsx 格式。当我在 Excel 中打开 CSV 文件时,我可以简单地另存为 xlsx 文件,它工作得很好。有没有办法通过 JS/TS 在前端为基于 React 的 Web 应用程序创建此功能?我对此进行了研究,似乎很多在线响应都是在 NodeJS 中进行转换,但我希望纯粹在前端拥有这种转换和下载功能,因为我正在使用 create React 应用程序并通过以下方式检索 JSON 数据: axios 调用用于制作 CSV 和 xlsx 文件。
export const downloadCsv = async (data: string, fileName: string) => {
const unicodeList = data.split('').map((x, i) => data.charCodeAt(i));
const sjisArray = Encoding.convert(unicodeList, {
to: 'SJIS',
from: 'UNICODE',
});
const blob = new Blob([new Uint8Array(sjisArray)], { type: 'text/csv'});
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.setAttribute('hidden', '');
a.setAttribute('href', url);
a.setAttribute('download', `${fileName}.csv`);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
Run Code Online (Sandbox Code Playgroud)
import XLSX from 'xlsx';
const downloadxls = (data)=>{
let ws = XLSX.utils.json_to_sheet(data);
let wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "sheet");
let buf = XLSX.write(wb, {bookType:'xlsx', type:'buffer'}); // generate a nodejs buffer
let str = XLSX.write(wb, {bookType:'xlsx', type:'binary'}); // generate a binary string in web browser
XLSX.writeFile(wb, `myfilename.xlsx`);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13408 次 |
| 最近记录: |