如何使用 xlsx 在 react.js 中下载 excel 文件时添加任何列的数据类型

问题描述 投票:0回答:1

这是我下载excel文件的代码

尝试{ const response = await Axios(配置); const 输出文件名 = "treasury_LOC_" + new Date().toJSON().slice(0, 10) + ".xlsx"; const url = URL.createObjectURL(new Blob([response.data])); const link = document.createElement("a"); link.href = 网址; link.setAttribute("下载", outputFilename); document.body.appendChild(链接); 链接.点击(); } 赶上(错误){}

javascript reactjs xlsx
1个回答
0
投票

您好,您可以参考我的代码:

import XLSX from 'xlsx';

try {
  const response = await Axios(config);
  const outputFilename = "treasury_LOC_" + new Date().toJSON().slice(0, 10) + ".xlsx";

  const worksheet = XLSX.utils.json_to_sheet(response.data);

  // Define data types for specific columns
  worksheet["B1"].t = "n"; // Column B as number data type
  worksheet["C1"].t = "s"; // Column C as string data type

  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");

  const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });
  const url = URL.createObjectURL(new Blob([s2ab(wbout)], { type: "application/octet-stream" }));

  const link = document.createElement("a");
  link.href = url;
  link.setAttribute("download", outputFilename);
  document.body.appendChild(link);
  link.click();
} catch (error) {}

function s2ab(s) {
  const buf = new ArrayBuffer(s.length);
  const view = new Uint8Array(buf);
  for (let i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
  return buf;
}
© www.soinside.com 2019 - 2024. All rights reserved.