作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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图书馆:
关于reactjs - 如何将网格数据导出到 excel、csv 和 pdf 文件(React),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55804936/
我是一名优秀的程序员,十分优秀!