如何使用 xlsx npm 库将嵌套的 json 对象转换为 excel 表?

Posted

技术标签:

【中文标题】如何使用 xlsx npm 库将嵌套的 json 对象转换为 excel 表?【英文标题】:How to convert a nested json object into an excel table using the xlsx npm library? 【发布时间】:2019-10-29 02:31:13 【问题描述】:

我有一个嵌套的 json 对象。为了简单起见:

data = 'key1': 1, 'key2': 2, 'key3': 'nestedKey1': 3, 'nestedKey2': 4

一个真实的对象更大,但重点是它是一个嵌套的对象。值可以是字符串、数字或其他对象。 现在我需要得到一个excel表(对于这个特定的json看起来像这样):

|----------------------------------------
| key1 | key2 |           key3          |
|      |      |--------------------------
|      |      | nestedKey1 | nestedKey2 |
|----------------------------------------
|  1   |  2   |     3      |      4     |
|----------------------------------------

为了做到这一点,我尝试使用 xlsx 库。我按如下方式导入库:

import  WorkSheet, WorkBook, utils, writeFile  from 'xlsx';

在我的方法中我定义了对象:

let myObj = 'key1': 1, 'key2': 2, 'key3': 'nestedKey1': 3, 'nestedKey2': 4

然后我创建一个工作表和工作簿:

const workSheet: WorkSheet = utils.json_to_sheet([myObj]);
const workBook: WorkBook = utils.book_new();
utils.book_append_sheet(workBook, workSheet, 'object_to_save');

最后将其写入文件:

writeFile(workBook, 'Tests.xlsx');

但完全可以预料,它不会像我希望的那样处理嵌套对象。我不知道我应该怎么做才能得到想要的结果。

【问题讨论】:

嗨,Igor,对不起,我没怎么用过这个库。 Excel 中是否有嵌套列功能,或者您是否希望它们成为“分组列”?我可能只是预处理对象以将其展平:let myObj = 'key1': 1, 'key2': 2, 'key3.nestedKey1': 3, 'key3.nestedKey2': 4 在执行 json_to_sheet 之前,如果这对您的用例来说可以 您好,感谢您的回复。好吧,我想过将对象展平,但我希望图书馆能够做更复杂的事情。由于很多原因,我不太喜欢 excel,因此我没有使用太多,所以我不确定上面的结构是什么样的。据我了解,这些列是嵌套的。我得到了一个 xlsx 格式的表格样本,但我还没有找到如何使用这个库获得所需的结果。 请阅读github.com/SheetJS/js-xlsx/issues/1059#issuecomment-377824371该库不支持复杂的Json结构 是否需要使用SheetJS?是否可以使用其他库,例如 ExcelJS (github.com/exceljs/exceljs)? ***.com/questions/55732859/… 在这里提出了类似的问题,您可能会知道它是如何实现的。 【参考方案1】:

它总是只会给你扁平化的结果。您可以尝试一些仅进行扁平化的在线转换器。 https://json-csv.com/

但如果您使用的是 kendo-grid,它会按照您的预期导出。

https://demos.telerik.com/kendo-ui/grid/excel-export

【讨论】:

以上是关于如何使用 xlsx npm 库将嵌套的 json 对象转换为 excel 表?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制排除 NPM 的嵌套依赖项?

如何使用简单的 JSON 库将 json 文件读入 java

java - 如何使用Java中的Volley库将JSON api数据放入recyclerview?

如何使用 SQFLite 或 Moor 库将 JSON 数据存储到颤振中的数据库表中

如何使用处理 Java 库将自定义形状数组和字符串数组合并到 JSON 对象中

如何使用 openpyxl 保存 xlsx 并获得正确的编码? 【垃圾人物】