我有来自内容管理网站的JSON转储,其格式如下:
[
{
id: "obj1",
children: [...]
},
{
id: "obj2",
children: [...]
}
]
有2-4个嵌套级别。
将此转换为Microsoft Excel XLS的最佳方法是什么,以便以某种方式处理嵌套级别,以便Excel能够使用他们的数据?
使用此特定数据,一种方法是为每个顶级文件夹(嵌套级别)创建一个新工作表。所有工作表都包含从该特定文件夹中的JSON对象中选取的相同列名。
是否有用于将JSON导入Excel的现成工具?
最好是作为命令行工具,如果需要编写脚本,那么在Python中。
答案 0 :(得分:2)
这取决于您的数据。
如果嵌套发生时没有任何重复,那么最简单的选择是复制所有内容或留下空格,如果您的数据足够完整,可以在您找到空白的地方进行重复。
这意味着作为CSV的XLS将如下所示:
Element1 Element1.1 Element1.1.1 ...
Element1 Element1.1 Element1.1.2 ...
Element2 Element2.1 Element2.1.1 ...
每个元素都是左边元素的子元素。您可以看到父母重复的次数与孩子的次数乘以每个孩子出现的次数。
您还可以使用两列来创建一个非常简单的表:
**Parent** **Child**
Element1 Element1.1
Element1.1 Element1.1.1
Element1.1 Element1.1.2
Element2 Element2.1
Element2.1 Element2.1.1
...
元素取决于您的粒度。您可以将key = values对分组为一个字符串,您可以将多个字段组合成一个字段并使用正则表达式将其解析回来,或者您可以将所有内容分开并将该键视为元素,将值视为另一个。
最后,如果有一些规律性,那么你可以采取一种更有趣的方法,假设你有一些重复的字段名,在这种情况下你可以采用任何以前的方法,但使用字段名来生成矩阵而不是列表。第一个例子是微不足道的,因为它显然是一个元组列表,它已经有一个隐式序数头,第二个是一个表,可能看起来像一个矩阵,但你可以这样做。
**Parent** **Child (default)** **Repeating key1** **Repeating key2**
e1 e1.1
e1.1 e1.1.1
e.1.1.1 something
e.1.1 e.1.1.2
e.1.1.2 somethingelse
所以基本上最后你有一个稀疏矩阵。
有一些非常有趣的方法可以在XLS上使用多张纸来存储具有三维的矩阵,但人类可读性可能随之下降。它归结为您正在使用的数据,没有通用解决方案。
答案 1 :(得分:1)
我认为 PHP - 电子表格引擎是您需要的......
以下是您查询的一些链接:
希望这会对你有帮助.. :)
我猜你要这个......
$excel = new SimpleExcel('csv'); // instantiate new object (will automatically construct the parser & writer type as CSV)
$excel->writer->setData(
$array // this is array generated from json
); // add some data to the writer
$excel->writer->setDelimiter(";"); // (optional) if delimiter not set, by default comma (",") will be used instead
$excel->writer->saveFile('example');