reactjs - 如何将网格数据导出到 excel、csv 和 pdf 文件(React)

标签 reactjs .net-core asp.net-core-webapi

我正在使用 React 和 .NET Core API 创建一个应用程序。我已经创建了我的网格(没有为此使用任何 npm 包)。

需要将网格数据导出为 pdf、excel 和 csv 格式的功能。如果没有任何 npm 包或库,我如何实现这一点?

我将在下载点击按钮时从服务器(.NET 核心 API)获取数据(在列表中)。

我尝试了一些 npm 包,例如 react-csv、downloadjs,但它们没有按预期工作。

Mine data in array of objects format:

[{firstColumn: "1", secondCoulmn: "4", thirdColumn: "test"},
 {firstColumn: "2", secondCoulmn: "3", thirdColumn: "test2"}]

当我在 downloadjs 中传递此数据时,包含 [Object object] 内容和生成的 PDF 文件的 excel 文件已损坏。

对于 react-csv,它正在生成未知文件,例如 b0d7cfd9-f4ca-4792-bfad-2b3198c63a33

最佳答案

假设数据是你要导出的网格

如果是 csv :

const csvContent = data.map(d=>d.join(",")).join("\n")
const element = document.createElement('a');
element.setAttribute(
  'href',
  `data:text/plain;charset=utf-8, ${encodeURIComponent(csvContent)}`,
);
element.setAttribute('download', `${fileName}.csv`);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element); 

如果数据很复杂,您可以使用 PapaParse

const csvContent = Papa.unparse(data);

在 Xls 的情况下:

使用SheetJS图书馆

例子:

const sheet = XLSX.utils.json_to_sheet(data);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, sheet, 'Sheet 1');
XLSX.writeFile(workbook, `${fileName}.xls`);

如果是pdf:

你需要创建网格的html

然后你可以使用 jsPDF图书馆:

Generate pdf from HTML in div using Javascript

关于reactjs - 如何将网格数据导出到 excel、csv 和 pdf 文件(React),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55804936/

相关文章:

node.js - 有关如何为聊天应用程序设计良好架构的建议?

javascript - react / typescript 错误 : Operator '<' cannot be applied to types 'boolean' and 'RegExp'

angular - dotnet core + Angular Universal + docker => 由于错误 : Error: Cannot find module,预渲染失败

c# - IIS 无法读取 web.config,消息中没有错误详细信息

Docker 容器上传到 gcp cloud-run,核心 Web api 应用程序无法正常工作

javascript - 为什么ComponentWillMount中声明的变量是Undefined?

javascript - 设置开始时的状态

c# - 带参数的开放泛型的依赖注入(inject)

c# - 从 .net core 3.1 中的 appsettings.json 获取值

c# - 如何在我的应用程序中使用基本身份验证?