如何在Javascript / HTML5中parsingExcel文件
我能够通过FileReader
读取Excel文件,但它输出文字以及怪异的字符。 我需要逐行读取xls
文件,读取每列中的数据并将其转换为JSON。
有谁知道如何逐行读取xls文件。
任何帮助将不胜感激。
下面的函数将Excel工作表(XLSX格式)数据转换为JSON。 你可以添加承诺的function。
<script src="ajax/libs/xlsx/0.8.0/xlsx.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script> <script> var ExcelToJSON = function() { this.parseExcel = function(file) { var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result(); var workbook = XLSX.read(data, { type: 'binary' }); workbook.SheetNames.forEach(function(sheetName) { // Here is your object var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]); var json_object = JSON.stringify(XL_row_object); console.log(json_object); }) }; reader.onerror = function(ex) { console.log(ex); }; reader.readAsBinaryString(file); }; }; </script>
下面的文章有XLS格式的Excel代码到JSON的javascript代码?
老问题,但我应该注意,从JavaScriptparsingXLS文件的一般任务是乏味和困难,但并非不可能。
我有纯JS实现的基本parsing器:
这两个页面都是HTML5文件API驱动的XLS / XLSX分析器(您可以拖放文件,它将以逗号分隔的列表打印出单元格中的数据)。 您也可以生成JSON对象(假设第一行是标题行)。
testing套件http://oss.sheetjs.com/显示了一个使用XHR来获取和parsing文件的版本。;
此代码可以帮助你
大部分时间jszip.js不能正常工作,所以在你的js代码中包含xlsx.full.min.js。
HTML代码
<input type="file" id="file" ng-model="csvFile" onchange="angular.element(this).scope().ExcelExport(event)"/>
使用Javascript
<script src="ajax/libs/xlsx/0.8.0/xlsx.js"> </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"> </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.10.8/xlsx.full.min.js"> </script> $scope.ExcelExport= function (event) { var input = event.target; var reader = new FileReader(); reader.onload = function(){ var fileData = reader.result; var wb = XLSX.read(fileData, {type : 'binary'}); wb.SheetNames.forEach(function(sheetName){ var rowObj =XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]); var jsonObj = JSON.stringify(rowObj); console.log(jsonObj) }) }; reader.readAsBinaryString(input.files[0]); };
XLS是Microsoft使用的二进制专有格式。 如果不使用某些特定的库或Office Interop,则使用服务器端语言parsingXLS是非常困难的。 用javascript做这个任务是不可能的。 感谢HTML5 File API,您可以阅读它的二进制内容,但为了parsing和解释它,您需要深入了解XLS格式的规范 。 从Office 2007开始,Microsoft采用了一种标准的Open XML文件格式( xslx
for Excel)。
var excel = new ActiveXObject(“Excel.Application”); var book = excel.Workbooks.Open(your_full_file_name_here.xls); var sheet = book.Sheets.Item(1); var value = sheet.Range(“A1”);
当你有工作表时。 您可以像在Excel中一样使用VBA函数。