首页 > 解决方案 > 基于行和列将 JSON 导出为 CSV

问题描述

https://ibb.co/pZQDLBv

我在 React 中有一个使用 react-CSV 库的日历数据。我不仅需要基于列导出数据,还需要基于行导出数据。
这是我试图形成的 CSV 格式 https://ibb.co/hRjKGYh

我有一个包含大约 50 多个城市名称的标题列表数据数组

const resourceId = ["Sydney", "Hyderabad", "London", "Tokyo", etc"]

标题要馈送到 CSV

header_data = [{label: "resourceId", key: "resourceId"}]

我有一个像这样的 JSON 对象结构

const result =  [

{
    resourceId: "Berlin”, 
    title: “Test1”, 
    name: “Foo1”, 
    startTime: Fri Jan 10 2020 09:30:00 GMT+0530 (India Standard Time), 
    endTime: Fri Jan 10 2020 11:30:00 GMT+0530 (India Standard Time),
    timezone: "Asia/Singapore”
},
{
    resourceId: “Tokyo”, 
    title: “Test2”, 
    name: “Bar1”, 
    startTime: Fri Jan 10 2020 09:30:00 GMT+0530 (India Standard Time), 
    endTime: Fri Jan 10 2020 11:30:00 GMT+0530 (India Standard Time),
    timezone: "Asia/Singapore”
},
{
    resourceId: “Hyderabad”, 
    title: “Test3”, 
    name: "Foo2”, 
    startTime: Fri Jan 10 2020 13:30:00 GMT+0530 (India Standard Time), 
    endTime: Fri Jan 10 2020 15:30:00 GMT+0530 (India Standard Time),
    timezone: "Asia/Singapore”
}]

StartTime 列数据的 24 小时时间格式

const start_time_column = ["00:00AM", "00:30AM", "01:00AM", "01:30AM", "02:00AM", "02:30AM", "03:00AM", "03:30AM", "04:00AM", "04:30AM", "05:00AM", "05:30AM", "06:00AM", "06:30AM", "07:00AM", "07:30AM", "08:00AM", "08:30AM", "09:00AM", "09:30AM", "10:00AM", "10:30AM", "11:00AM", "11:30AM", "00:00PM", "00:30PM", "01:00PM", "01:30PM", "02:00PM", "02:30PM", "03:00PM", "03:30PM", "04:00PM", "04:30PM", "05:00PM", "05:30PM", "06:00PM", "06:30PM", "07:00PM", "07:30PM", "08:00PM", "08:30PM", "09:00PM", "09:30PM", "10:00PM", "10:30PM", "11:00PM", "11:30PM"]

JSX 标签

    <CSVLink
      data={result}
      headers={header_data}
      filename={"test.csv"}
    >
      <Button
        icon="export"
        intent="primary"
        text="Export"
      />
    </CSVLink>

这是我试图形成的 CSV 格式。

我正在尝试将此日历数据按原样导出为 CSV 格式例如 - 如果资源 ID Hyderabad 的事件是从下午 13:00 到下午 15:30,它应该将单元格填充到相应的行

开始时间为下午 13:00 的行的开始时间索引到开始时间为下午 15:30 的行,数据为 13:30-15:30 Hyderabad Test3 Fool2。提前致谢。

标签: javascriptreactjscsvexport-to-csv

解决方案


推荐阅读