javascript - 如何将 excel 转换为 json 并在 cypress 中以编程方式写入 json 文件?
问题描述
我已经编写了将 excel 文件读入 json 的代码,但无法按预期读取。它返回每一行的数组。有人可以帮我读取数据并将其正确写入 json 文件。提前致谢。下面是我的代码:
插件/index.js 文件
const xlsx = require("node-xlsx").default;
const fs = require("fs");
const path = require("path");
module.exports = (on, config) => {
on("task", {
parseXlsx({ filePath }) {
return new Promise((resolve, reject) => {
try {
const jsonData = xlsx.parse(fs.readFileSync(filePath));
resolve(jsonData);
} catch (e) {
reject(e);
}
});
}
});
}
规范.js 文件
describe('API', () => {
it('readf', () => {
cy.parseXlsx("/Cypress/cypress/fixtures/data.xlsx").then(
(jsonData) => {
const rowLength = Cypress.$(jsonData[0].data).length
for (let index = 0; index < rowLength; index++) {
console.log(jsonData[index].data)
}
}
)
}
)
我想要json输出并写入json文件,如下所示:
{
"Sheet1": [
{
"Username": "user1",
"password": "password1"
},
{
"Username": "user2",
"password": "password2"
},
{
"Username": "user3",
"password": "password3"
}
]
}
解决方案
为了将 Excel 工作表转换为 JSON(并返回),我使用 SheetJS 的xlsx。
const XLSX = require('xlsx');
// read file
let workbook = XLSX.readFile(filename);
// read first sheet (identified by first of SheetNames)
let sheet = workbook.Sheets[workbook.SheetNames[0]];
// convert to JSON
let json = XLSX.utils.sheet_to_json(sheet);
请记住,尤其是在运行服务器应用程序时,xlsx
使用阻塞方法并会导致进程线程上的 I/O 等待。最好在fork中运行这个异步。
推荐阅读
- postgresql - 错误:父目录是全局可写但不是粘性 MAC
- python - 如何像 2D 一样转置 3D 矩阵?
- python - 按属性将列表划分为子列表
- google-cloud-platform - Google Vision API:图片上同时显示英语和阿拉伯语
- javascript - 将值传递给 EJS 文件
- android - 使用 ./gradlew assembleDebug 从命令行构建时找不到符号 DataBindingComponent
- python-3.x - 张量流模型的预测失败
- javascript - 有人可以建议一些更好的方法来编写这个 Javascript 代码
- rest - 如何通过配置tomcat产生503错误?
- javascript - 为什么android的代码在IOS中不起作用?