Excel js + React JS
excel广泛用于各种数据报告。在reactjs应用程序中,我们可以使用exceljs库动态创建excel文件。本文将指导您在 react 应用程序中实现 exceljs 以创建和下载 excel 报告。
设置和安装
首先,安装exceljs库。打开终端并在 react 项目目录中运行以下命令:
npm install exceljs file-saver
exceljs 库将用于创建和操作工作簿(excel 文件),而 file-saver 将处理浏览器中的文件下载。
第 1 步:创建导出 excel 函数
创建一个新的组件文件,例如 exporttoexcel.js。在此组件中,我们将创建一个exportexcel函数来处理工作簿和工作表的创建,以及保存生成的excel文件。
import react from 'react'; import exceljs from 'exceljs'; import { saveas } from 'file-saver'; const exporttoexcel = ({ data, filename }) => { const exportexcel = async () => { // 1. create a new workbook const workbook = new exceljs.workbook(); const worksheet = workbook.addworksheet('data report'); // 2. define the table headers worksheet.columns = [ { header: 'id', key: 'id', width: 10 }, { header: 'name', key: 'name', width: 30 }, { header: 'email', key: 'email', width: 30 }, { header: 'join date', key: 'joindate', width: 20 }, ]; // 3. insert data into the worksheet data.foreach((item) => { worksheet.addrow({ id: item.id, name: item.name, email: item.email, joindate: item.joindate, }); }); // 4. style the header worksheet.getrow(1).eachcell((cell) => { cell.font = { bold: true }; cell.alignment = { horizontal: 'center' }; }); // 5. save the workbook as an excel file const buffer = await workbook.xlsx.writebuffer(); const blob = new blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); saveas(blob, `${filename}.xlsx`); }; return ( <button onclick={exportexcel}>download excel</button> ); }; export default exporttoexcel;
第 2 步:使用 exporttoexcel 组件
创建 exporttoexcel 组件后,在相关文件(例如 app.js)中使用它。确保您已准备好数据以导出到 excel。
import React from 'react'; import ExportToExcel from './ExportToExcel'; const App = () => { const data = [ { id: 1, name: 'Name 1', email: 'Name1@example.com', joinDate: '2023-01-15' }, { id: 2, name: 'Name 2', email: 'Name2@example.com', joinDate: '2023-02-20' }, // Add more data as needed ]; return ( <div> <h1>Export Data to Excel</h1> <ExportToExcel data={data} fileName="Data_Report"/> </div> ); }; export default App;
使用exceljs,在reactjs中生成excel报告变得简单灵活。本指南演示如何创建包含标题、数据插入和基本标题样式的 excel 报表。