我在服务器端使用“xlsx”模块。我的服务器从客户端获取 .xlsx 文件。当文件使用多部分上传时,它工作得很好。但是当我尝试从 Google Drive 或 Dropbox 下载文件时,我总是收到损坏的 .xlsx 文件。
从 Google Drive 下载文件的功能。
service.files.get({
auth: auth,
fileId: fileId,
alt: 'media'
}, function (err, response) {
if (err) {
res.status(400).json({message: "Error while downloading"});
} else {
fs.writeFileSync(req.body.fileName, response);
var data = xlsParser.parse(fs.readFileSync(req.body.fileName));
res.json(data);
}
});
Run Code Online (Sandbox Code Playgroud)
解析器代码
module.exports = {
parse: function (file) {
var workSheet = xlsx.read(file, {});
return Object.keys(workSheet.Sheets).map(function(name) {
var sheet = workSheet.Sheets[name];
return {name, data: xlsx.utils.sheet_to_json(sheet, {raw: false})}
})
}}
Run Code Online (Sandbox Code Playgroud)
Google Drive 上的文件有效。用 node 编写它们后,我无法打开它们。我得到的错误
\node_modules\jszip\lib\dataReader.js:25
throw …Run Code Online (Sandbox Code Playgroud)