我知道这是对 CSV 格式的滥用。我确实知道更合适的解决方案是导出xls/xlsx文件,或者为用户提供 OData 端点并让他们使用 power hub 检索数据。此时我想坚持使用 CSV,因为它更容易实现。
我需要将平面行列表(报告)导出为 CSV 文件。同时我想包含一些有关数据的元数据。例如报告标题、生成日期和用户。
有没有一种巧妙的方法可以使用 CSV 文件格式来实现这两个目标?
该文件的用途是允许用户在 Excel 中打开文件并进行数据处理。
一种解决方案是将 CSV 分为两部分:元数据和数据。例如
Title,Report Generation Date,Generated by User,,
Outstanding Jobs,5/5/2015,bkent@compusa.com,,
,,,,
Job Started, Estimated Completion, Description, Foo, Bar
9/3/2003,1/1/2006,"do something important""""",5,7
5/4/2007,2/2/2010,"do something else""""",3,12
Run Code Online (Sandbox Code Playgroud)
或者也许有一个用于此目的的 CSV 格式的“标准”扩展?
这种方法有任何实际问题吗?
当我想向 csv 文件添加一些元数据时,我最终将其存储为 json 字符串,作为最后一个列标题的一部分。
timestamp;x;y;z;heading#{"id": "-L4uNnjWXL2cLY_xpU_s"}
89318.329;0.00541;-0.00548;-0.00219;-1.0
89318.339;0.00998;0.0063;-0.00328;-1.0
89318.349;0.0043;0.01318;0.00069;-1.0
89318.359;0.00477;0.0138;0.0007;-1.0
Run Code Online (Sandbox Code Playgroud)
与OP的建议相比,这样做的优点是,它是一个有效的csv文件,因为所有行都具有相同数量的列,并且每列仅包含一种类型的数据。了解格式的解析器可以在 处分割标头#并解析 json 元数据。不知道格式的解析器将简单地显示最后一列的标题和元数据。
CSV 没有允许存储元数据的标准扩展。
您当然可以在文件中为元数据设置一个单独的部分,但这往往会使处理变得复杂,因为 CSV 解析器必须处理单独的标头等。标准 CSV 解析器不会为您执行此操作。
考虑是否可以使用命名约定将元数据存储在单独的文件中,例如
MyData123.csv
MyData123-Meta.csv
Run Code Online (Sandbox Code Playgroud)
您可以将两者捆绑到 Zip 存档中,将它们保存在一起,直到准备好进行处理。
| 归档时间: |
|
| 查看次数: |
9536 次 |
| 最近记录: |