将XLSX.js与base64一起使用

时间:2014-10-16 18:22:58

标签: javascript excel typescript

尝试做

var work = XLSX.readFile("D:\\sched.xls"); //var XLSX = <XLSX>require('xlsx');

但我相信我遇到了这个问题所描述的问题 https://github.com/stephen-hardy/xlsx.js/issues/11

编辑开始 发现我实际上使用的是一个不同的库,然后是我发现该问题的库。
https://github.com/SheetJS/js-xlsx/issues/135 编辑结束

解决方法是“使用base64编码读取文件,然后将其传递给xlsx就可以了。”

var fileRead = fs.readFileSync("D:\\sched.xls");
var base64 = fileRead.toString('base64');

//The workaround seems to be talking about some xlsx function?
//even .read doesn't seem to be thing based on my typescript binding.
var workbook = XLSX.read(base64); //to use read switch:
//                                 var XLSX = <XLSX>require('xlsx');
//                                 var XLSX = require('xlsx')

所以我很确定我已经使用base64编码在文件中读取了如何将其传递给xlsx.js

1 个答案:

答案 0 :(得分:1)

您需要使用支持“.xls”格式的Excel阅读器。例如,excel-parser库支持“.xls”和“.xlsx”格式。

我不知道你正在使用什么库,但鉴于它被称为XLSX,我希望它只能解析现代的“.xlsx”格式,而不是旧的“.xls”格式(和你的文件的扩展名为“.xls”。

var excelParser = require('excel-parser');

excelParser.worksheets({
    inFile: 'D:\\sched.xls'
}, function(err, worksheets){
    if(err) {
        console.error(err);
    }

    console.log(worksheets);
});

会以如下格式为您提供输出:

[
  ['ID', 'Name', 'Location'],
  ['1757491', 'Travis', 'Philadelphia'],
  ['75525', 'Steve', 'UK']
]