当前位置:首页 > React

React如何下载csv文件

2026-01-24 07:22:18React

使用React下载CSV文件的方法

方法1:使用Blob和URL.createObjectURL

创建一个Blob对象包含CSV数据,生成下载链接并触发点击事件。

const downloadCSV = (data, filename) => {
  const csvContent = data.join("\n");
  const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
  const url = URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = url;
  link.setAttribute("download", filename);
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
};

方法2:使用第三方库react-csv

安装react-csv库简化CSV生成和下载过程。

npm install react-csv
import { CSVLink } from "react-csv";

const data = [
  ["Name", "Age", "City"],
  ["John", "25", "New York"],
  ["Jane", "30", "London"]
];

<CSVLink data={data} filename={"example.csv"}>
  Download CSV
</CSVLink>

方法3:从API获取数据后下载

当需要从后端API获取CSV数据时,可以直接下载响应内容。

React如何下载csv文件

const downloadCSVFromAPI = async (url, filename) => {
  const response = await fetch(url);
  const blob = await response.blob();
  const downloadUrl = window.URL.createObjectURL(blob);
  const link = document.createElement("a");
  link.href = downloadUrl;
  link.download = filename;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  window.URL.revokeObjectURL(downloadUrl);
};

注意事项

  • 确保CSV数据格式正确,字段间用逗号分隔
  • 处理特殊字符时考虑添加引号转义
  • 对于大数据量考虑分块处理或服务器端生成
  • 移动端浏览器可能对程序化下载有不同限制

分享给朋友:

相关文章

vue实现文件的上传

vue实现文件的上传

文件上传的基本实现 在Vue中实现文件上传通常结合HTML的<input type="file">元素和FormData对象。通过监听文件选择事件获取文件对象,再通过AJAX或axios发…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

vue实现文件分享

vue实现文件分享

Vue 实现文件分享功能 前端文件上传与展示 使用 Vue 和 Element UI 实现文件上传组件,允许用户选择文件并上传到服务器。 <template> <div>…

vue文件树实现

vue文件树实现

Vue 文件树实现 实现文件树功能通常需要递归组件和动态数据加载。以下是一个基于 Vue 3 的完整实现方案: 数据结构设计 文件树的数据结构通常为嵌套对象数组,每个节点包含以下属性: c…

vue前端实现文件预览

vue前端实现文件预览

Vue 前端实现文件预览的方法 图片预览 使用 <input type="file"> 结合 URL.createObjectURL() 实现本地图片预览: <template&g…

vue实现文件的下载

vue实现文件的下载

使用 window.open 方法 通过 window.open 直接打开文件链接触发下载,适用于简单的文件下载场景。 代码示例: window.open('文件URL', '_blank'); 使…