node.js - 从 Node.js 中的二进制数据创建 XLS 文件

标签 node.js xls

我收到了来自 http 请求的二进制数据作为响应。

在 C# 中,我将数据转换为 byteArray 并将 byteArray 写入文件中创建一个可读的 xls 文件。

C# 代码:

 HttpResponseMessage httpResponseMessage = _httpClient.GetAsync(endPoint).Result;
 var httpResponseByteArray = httpResponseMessage.Content.ReadAsByteArrayAsync().Result;
 File.WriteAllBytes("plateList.xls", httpResponseByteArray);

我正在寻找一种在 Node js 中实现相同功能的方法。

到目前为止,我已经尝试过这些方法,但每种方法都创建了一个不可读的文件:

 const Excel = require('exceljs');

第一次尝试 - node.js

 var dataBinary = response.data;
 var workbook = new Excel.Workbook(dataBinary);
 await workbook.xlsx.writeFile("Test.xls")
         .then(function (err) {
            if (err) throw err;
            console.log('\x1b[32m%s\x1b[0m', "Create excel file successfully");
          });

第二次尝试 - node.js

 var bufferData = Buffer.from(response.data);
 var workbook = new Excel.Workbook(dataBinary);
 await workbook.xlsx.writeFile("Test.xls")
         .then(function (err) {
            if (err) throw err;
            console.log('\x1b[32m%s\x1b[0m', "Create excel file successfully");
          });

其他库:

 const fs = require('fs');

第三次尝试 - node.js

 fs.writeFileSync("Test.xls", response.data);

第四次尝试 - node.js

 fs.writeFileSync("Test.xls",  Buffer.from(response.data));

还有更多,但对我没有任何作用

最佳答案

// response.data as a arrayBuffer
var data = response.data;
var arr = new Array();
for (var i = 0; i != data.length; ++i)
    arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");

/* Call XLSX */
var workbook = XLSX.read(bstr, {
    type: "binary"
});

/* Create the file*/
XLSX.writeFile(workbook, "carNumbersAllowedFromLPRCamera.xls");

/* Get the work sheet name */
var first_sheet_name = workbook.SheetNames[0];

/* Get worksheet */
var worksheet = workbook.Sheets[first_sheet_name];

/* Convert it to json*/
let xlsData = XLSX.utils.sheet_to_json(worksheet, {
    raw: true
})

关于node.js - 从 Node.js 中的二进制数据创建 XLS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59880953/

相关文章:

java - 将 excel 转换为 pdf 或创建新的 pdf 文件?

html - 将 CSS 与 XLST 文件分离的建议

r - read.xls-读取长度可变的工作表列表及其名称

node.js - Cckeditor 在 Node.js 网页中的使用和集成

node.js - 如何修复 ‘Parsing Error: The keyword ‘await’ 已保留’

javascript - 类型错误 : is not a constructor with Node and Express JS

node.js - 如何使用旧版本的node.js buildpack?

node.js - 如何在 node.js 服务器中提供 angular2 应用程序

java - Apache POI xls 文件错误

php - 将数据库导出到 xls,价格格式为美元符号和逗号