如何在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库。 试试吧,谢谢你
您可以使用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) } }) })
您可以在后端获取并处理文件。