2014-10-16 74 views
0

使用XLSX.js试着做使用Base64

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

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

编辑BEGIN 发现我其实是用不同的库,然后我发现列出的问题之一。
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

如何完全使用情况是什么样子?你正在尝试使用node.js来加载Excel文件和..?顺便说一句:** xls和xlsx是完全不同的文件格式**,[xls是奇怪的二进制](http://msdn.microsoft.com/en-us/library/office/gg615597(v = office.14).aspx ),[xlsx是压缩xml](http://msdn.microsoft.com/en-us/library/aa338205(v = office.12).aspx) – xmojmr 2014-10-17 06:23:37

+0

当您有权访问java运行时,[POI来自Apache](http://poi.apache.org/),你可以将XLS转换为XLSX(当文件不包含复杂的图或公式时) – Nachtgold 2014-10-17 07:17:18

回答

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'] 
] 
+1

感谢我使用的库的作者,实际上有另一个库可以处理https://www.npmjs.org/package/j也是如此。 – Travis 2014-10-17 13:05:24