programing

노드의 서버에서 XLS를 CSV로 변환

i4 2023. 6. 15. 21:34
반응형

노드의 서버에서 XLS를 CSV로 변환

클라이언트 측 웹 응용 프로그램이 있으며 클라이언트가 액세스할 수 없는 일부 데이터에 액세스할 수 있는 노드 서버가 매우 적습니다.이러한 기능 중 하나는 확장명이 .xls인 Excel 스프레드시트입니다.

xls를 다운로드하여 csv로 변환한 후 클라이언트로 다시 보내도록 서버를 설정하려고 합니다.다운로드 부분을 완료했고, "보내기" 부분은 확실히 알아낼 수 있지만, xls에서 csv로 변환할 수 있는 좋은 라이브러리를 아무리 찾아도 찾을 수 없습니다.

누가 간단한 방법으로 그것을 할 수 있는 도서관을 가르쳐 줄 수 있나요?엑셀 파일은 한 장일 뿐, 복잡한 문제집 같은 것은 없습니다.

아니면 제가 생각하지 않는 다른 방법이 있을까요?

이 패키지를 사용하여 XLSX를 CSV로 변환합니다. https://www.npmjs.com/package/xlsx

XLSX = require('xlsx');

const workBook = XLSX.readFile(inputFilename);
XLSX.writeFile(workBook, outputFilename, { bookType: "csv" });

제가 알고 있는 라이브러리는 없지만 node-xlsx를 사용하여 엑셀 파일을 구문 분석하고 행을 가져와 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!");
});

언급URL : https://stackoverflow.com/questions/34342425/convert-xls-to-csv-on-the-server-in-node

반응형