如何在Javascript中上传excel文件或将excel转换为文本文件?

我一直在为文本file upload页面,现在我想上传excel文件。 我目前的代码给我奇怪的输出。 我假设一些错误,因为我的function是build立为文本文件,现在我不得不修改一些东西来读取Excel文件。 这是我的文件阅读器代码:

function fileSubmit(){ var fileExist = $('#fileUpload')[0]; var fileName = $('#fileUpload').val().split('\\').pop(); if(fileName && fileExist){ var reader = new FileReader(); var file = fileExist.files[0]; reader.onload = function(e) { var text = reader.result.split(/\r\n|\n/); var columnNames = text.shift().split('\t'); alert(columnNames); } reader.readAsText(file, 'UTF-8'); } } 

我的警报输出如下所示:

 PK!b h^ [Content_Types].xml  (    N 0E H C -Jܲ@5  *Q> ēƪc[ ii    B j7   {2  h nm   ƻR    U^7/   %  rZY @1__ f  q  R4D AJ h>    V ƹ Z 9    NV 8ʩ    ji){^  - 

我想输出我的列名称,因为我必须对文件中的每一行进行validation。 什么是最好的方式来得到这个.xsl.xsls文件的工作? 我发现了许多xls和xlxs javascript库的例子,但是当我试图实现很多原因时,它们都没有工作。 我想知道是否有所有浏览器支持的东西,或者这不应该在JavaScript中完成? 谢谢。

xlsx是内部的xml文件,它们是一起组成xlsx的文件。要检查它是否打开zip,你可以更好地了解xlsx文件是由什么组成的。

Xlsx内部是[用ZIP打开]

_

 rels docProps xl [content_types].xml 

所以这些文件在内部工作依赖于关系。 将xlsx文件作为文本文件读取绝不是一个好习惯。 还有其他的方法,你可以阅读它使用Apache poi库。 试试吧,谢谢你

您可以使用XMLHttpRequestFormData上传文件,

 $('#input-file').change(function() { var url = '/back-end-url'; var form_data = new FormData(); var xhr = new XMLHttpRequest(); $.each(this.files, function (key, value) { form_data.append('file', value) }) xhr.open('POST', url, true) xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest") xhr.send(form_data) xhr.onreadystatechange(function() { if(xhr.readyState == XMLHttpRequest.DONE) { var res = JSON.parse(xhr.responseText) } }) }) 

您可以在后端获取并处理文件。