当http.get xlsx文件时如何避免nodejs解析错误?

时间:2015-02-06 13:19:20

标签: node.js excel

我正在下载xlsx文件

var options = urlObj;
options.method = 'GET';
options.headers = {'Content-Type':'text/plain'};
function reqCallback(res) {
    // default: 'utf8'
    res.setEncoding('utf8'); //utf16le'); //binary'); //hex'); //utf8
    res.pipe (
        simplexlsx( function (err, table) {
                        if (err) {console.log('simple-xlsx: '+err)};
                        console.log('simplexlsx for '+ table);
                    })
    )
}
var req = http.request(options);
req.on('response', reqCallback); 
req.end();

从:

server: 'Microsoft-IIS/7.5'
'x-aspnet-version': '4.0.30319',
'x-powered-by': 'ASP.NET'

我也没有在标题中拥有:

'content-type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

得到:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: Parse Error
    at Socket.socketOnData (http.js:1588:20)
    at TCP.onread (net.js:528:27)

我将对simple-xlsx解析器的响应传递给json,这在处理错误时工作正常。

当我设置:setEncoding('hex')

simple-xlsx: Error: invalid signature: 0x62343035

或setEncoding('binary')

simple-xlsx: Error: invalid distance too far back

和setEncoding('utf16le')或setEncoding('utf8')得到解析错误。

如何解决解析错误?

0 个答案:

没有答案