当前位置:首页 > 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 库。

安装依赖:

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 库支持自定义样式和格式,可以通过设置单元格属性实现。

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

实现代码:

react实现excel下载

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

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

注意事项

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

标签: reactexcel
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react如何调试

react如何调试

调试 React 应用的方法 使用 React Developer Tools React Developer Tools 是 Chrome 和 Firefox 的浏览器扩展,可以检查组件树、状态和…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…

理解如何react

理解如何react

理解React的核心概念 React是一个用于构建用户界面的JavaScript库,专注于通过组件化开发提高代码的可维护性和复用性。其核心思想包括虚拟DOM(Virtual DOM)和单向数据流,能够…

如何用react

如何用react

使用React的基本步骤 安装Node.js和npm 确保系统已安装Node.js和npm。Node.js自带npm,可从官网下载安装包。安装完成后,通过命令行验证版本: node -v npm -…