当前位置:首页 > React

react实现excel下载

2026-01-27 05:38:08React

使用 xlsx 库实现 Excel 下载

安装 xlsx 库,这是一个流行的 JavaScript 库,用于处理 Excel 文件。

npm install xlsx

创建一个函数生成 Excel 文件并触发下载。

import * as XLSX from 'xlsx';

const downloadExcel = (data, fileName) => {
  const ws = XLSX.utils.json_to_sheet(data);
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  XLSX.writeFile(wb, `${fileName}.xlsx`);
};

调用示例:

const data = [
  { Name: "John", Age: 30 },
  { Name: "Jane", Age: 25 }
];

<button onClick={() => downloadExcel(data, "users")}>Download Excel</button>

使用 file-saverxlsx 实现下载

如果需要更灵活的下载控制,可以结合 file-saver 库。

安装依赖:

react实现excel下载

npm install xlsx file-saver

实现代码:

import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';

const downloadExcel = (data, fileName) => {
  const ws = XLSX.utils.json_to_sheet(data);
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
  const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
  saveAs(blob, `${fileName}.xlsx`);
};

从 API 获取数据并下载

如果数据需要从 API 获取,可以在获取数据后调用下载函数。

const fetchAndDownload = async () => {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  downloadExcel(data, "api_data");
};

<button onClick={fetchAndDownload}>Download from API</button>

自定义 Excel 样式和格式

xlsx 库支持自定义样式和格式,可以通过设置单元格属性实现。

react实现excel下载

const ws = XLSX.utils.json_to_sheet(data);
ws['A1'].s = { font: { bold: true }, fill: { fgColor: { rgb: "FFFFAA00" } } };

使用 react-excel-renderer

如果需要更简单的集成,可以使用 react-excel-renderer

安装依赖:

npm install react-excel-renderer

实现代码:

import { ExcelRenderer } from 'react-excel-renderer';

const downloadExcel = (data, fileName) => {
  ExcelRenderer.exportToExcel(data, fileName);
};

注意事项

确保数据格式正确,避免包含循环引用或不可序列化的对象。文件名应避免特殊字符,确保跨浏览器兼容性。对于大量数据,考虑分块处理以避免性能问题。

标签: reactexcel
分享给朋友:

相关文章

react如何销毁

react如何销毁

销毁 React 组件 在 React 中,销毁组件通常涉及清理副作用(如事件监听器、定时器或订阅)以防止内存泄漏。以下是实现组件销毁的常见方法: 使用 useEffect 清理副作用 在函数组件…

react如何卸载

react如何卸载

卸载 React 项目或依赖 如果需要完全卸载 React 项目或相关依赖,可以按照以下步骤操作: 删除项目文件夹 直接删除整个项目文件夹是最彻底的方式。确保已备份重要代码或配置文件。 卸载全局安…

如何同步react

如何同步react

同步React组件状态的方法 使用useState和useEffect钩子组合可以同步React组件的状态。useState用于声明状态变量,useEffect用于监听状态变化并执行副作用。 imp…

react如何下载

react如何下载

安装 React 的步骤 通过 npm 或 yarn 安装 React,确保已安装 Node.js(版本建议 ≥ 14.0.0)。打开终端或命令行工具,运行以下命令: npx create-reac…

react如何注销

react如何注销

React 组件的注销方法 在 React 中,组件的注销通常指的是在组件卸载时执行清理操作,例如取消订阅、清除定时器或释放资源。以下是几种常见的方法: 使用 useEffect 钩子的清理函数…

react如何重启

react如何重启

重启 React 应用的方法 重新加载当前页面 使用 window.location.reload() 强制刷新页面,这会重新加载整个应用并重置所有状态。 window.location.rel…