在Cypress中如何向xlsx格式Excel文件写入数据?
问题原因
xlsx是有固定二进制结构的办公文档格式,你当前的写法是直接将纯文本内容写入后缀为.xlsx的文件,本质生成的是纯文本文件,并非符合格式规范的xlsx文件,所以无法正常打开。
正确实现步骤
- 第一步:安装xlsx处理依赖
执行npm命令安装常用的excel处理工具库:npm install xlsx --save-dev - 第二步:在测试代码中引入库并按规范生成xlsx文件
完整代码示例如下:// 测试文件顶部引入xlsx库 const XLSX = require('xlsx') // 你的测试逻辑中加入以下写入代码 // 构造表格数据,这里按你的需求做成两列键值对格式 const tableData = [ ['字段名称', '内容'], ['Username', Username], ['Password', Password], ['ExpectedResult', ExpectedResult], ['ActualResult', Asresult], ['Result', result] ] // 创建工作表 const worksheet = XLSX.utils.aoa_to_sheet(tableData) // 创建工作簿 const workbook = XLSX.utils.book_new() // 将工作表添加到工作簿,命名为Sheet1 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') // 生成xlsx格式的二进制buffer const xlsxBuffer = XLSX.write(workbook, { type: 'buffer', bookType: 'xlsx' }) // 用cy.writeFile写入文件,指定编码为binary cy.writeFile('cypress/fixtures/DataTest/login_result.xlsx', xlsxBuffer, 'binary').as('writeXlsxFile') - 注意事项:写入前请确认
cypress/fixtures/DataTest目录已经存在,不存在需要提前手动创建,否则会触发路径不存在的报错。
内容的提问来源于stack exchange,提问作者Nattawut
相关产品推荐
相关产品推荐

