2014-10-16 80 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