首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >令人吃惊的是,无法找到解决这一问题的办法。将csv自动下载到服务器,而不是用户选择。

令人吃惊的是,无法找到解决这一问题的办法。将csv自动下载到服务器,而不是用户选择。
EN

Stack Overflow用户
提问于 2022-04-29 19:17:48
回答 1查看 193关注 0票数 1

因此,我正在生成一个发票,并使用react包将我的graphql数据隐藏到一个csv文件中。问题是,我不希望用户在本地选择要下载到的位置(开箱即用)。它需要自动保存在服务器中的硬编码目录中。有人吗?

代码语言:javascript
复制
<CSVLink onClick={generateInvoice} className="mt-1 inline-block align-middle  w-full inline-flex justify-center py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-blue-400 hover:bg-blue-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" filename={csvfilename} data={csvinvoiceForDownload} headers={headers}>
Create Invoice
</CSVLink>
EN

回答 1

Stack Overflow用户

发布于 2022-05-08 18:24:04

你不需要反应-csv,它是用来渲染数据的.

您可以使用例如PapaParse https://www.papaparse.com/docs#json-to-csv将您的graphQL对象转换为csv,您可以将其与fetch或axios一起发送到您的服务器。

代码语言:javascript
复制
// With implicit header row
// (keys of first object populate header row)
var csv = Papa.unparse([
    {
        "Column 1": "foo",
        "Column 2": "bar"
    },
    {
        "Column 1": "abc",
        "Column 2": "def"
    }
]);

此外,您也可以使用js:

代码语言:javascript
复制
const items = json3.items
const replacer = (key, value) => value === null ? '' : value // specify how you want to handle null values here
const header = Object.keys(items[0])
const csv = [
  header.join(','), // header row first
  ...items.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','))
].join('\r\n')

console.log(csv)

(示例在SO:How to convert JSON to CSV format and store in a variable上找到)

你可以找到更多的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72062775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档