如何用Javascript上传excel文件或将excel转换为文本文件

How to upload excel file in Javascript or convert excel to text file?

本文关键字:excel 文件 转换 文本 上传 何用 Javascript      更新时间:2023-09-26

我一直在为文本文件的上传页面工作,现在我也想上传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中完成的事情?谢谢你。

xlsx是内部xml文件,它是一组文件组合在一起作为xlsx .检查它打开zip,你可以有一个更好的视图什么xlsx文件是由。

Xlsx internal is [open with 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)
          }
      })
})

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