一尘不染

在Node中的服务器上将XLS转换为CSV

node.js

我有一个客户端Web应用程序,其节点服务器非常小,可以访问客户端无法访问的某些数据。其中之一是扩展名为.xls的excel电子表格。

我正在尝试设置服务器以下载xls,将其转换为csv,然后将其发送回客户端。我已经完成了下载部分,而且我确定可以弄清楚“发回”部分,但是我终生无法找到一个很好的库来将xls转换为csv。

有人可以指出我要以一种简单的方式做到这一点的图书馆吗?excel文件只是一张纸,没有复杂的工作簿之类的东西。

还是我没有想到的另一种方法?


阅读 274

收藏
2020-07-07

共1个答案

一尘不染

我没有知道的库,但是您可以使用node-xlsx解析excel文件,获取行并自己制作CSV。这是一个例子:

var xlsx = require('node-xlsx');
var fs = require('fs');
var obj = xlsx.parse(__dirname + '/test.xls'); // parses a file
var rows = [];
var writeStr = "";

//looping through all sheets
for(var i = 0; i < obj.length; i++)
{
    var sheet = obj[i];
    //loop through all rows in the sheet
    for(var j = 0; j < sheet['data'].length; j++)
    {
            //add the row to the rows array
            rows.push(sheet['data'][j]);
    }
}

//creates the csv string to write it to a file
for(var i = 0; i < rows.length; i++)
{
    writeStr += rows[i].join(",") + "\n";
}

//writes to a file, but you will presumably send the csv as a      
//response instead
fs.writeFile(__dirname + "/test.csv", writeStr, function(err) {
    if(err) {
        return console.log(err);
    }
    console.log("test.csv was saved in the current directory!");
});
2020-07-07