2016-11-18 99 views
0

我一直在为文本文件上传页面,现在我想上传excel文件。我目前的代码给我奇怪的输出。我认为有些东西是错的,因为我的函数是为文本文件构建的,现在我不得不修改某些内容来读取excel文件。这里是我的文件阅读器代码:如何在Javascript中上传excel文件或将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){^��- 

我要输出我的专栏的名字,因为我必须做验证的每一行中文件。让.xsl.xsls文件起作用的最佳方法是什么?我发现了很多xls和xlxs javascript库的例子,但是当我试图实现很多原因时,它们都没有工作。我想知道是否有所有浏览器支持的东西,或者这不应该在JavaScript中完成?谢谢。

+1

一个excel文件不仅仅是一个标准的文本文件,并且不能被读取。有一些编码应用于文件 - 这是垃圾输出的原因。 –

+3

[如何在Javascript/HTML5中解析Excel文件]可能的重复(http://stackoverflow.com/questions/8238407/how-to-parse-excel-file-in-javascript-html5) –

+0

这些答案都不是/功能工作。我尝试了一个被接受为答案的答案,并且出现错误'Bolb'。 –

回答

1

xlsx是内部xml文件,它们是组合在一起的一组文件,它们组合为xlsx。要检查它是否打开zip,并且可以更好地查看xlsx文件的构成。

XLSX内部的[开始与ZIP]

_

rels 
docProps 
xl 
[content_types].xml 

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

0

您可以使用XMLHttpRequest的FORMDATA上传文件,

$('#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) 
      } 
     }) 

}) 

你可以得到&处理在后端文件。

相关问题