我一直在处理文本文件的上传页面,现在我也想上传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内部是[用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)
}
})
})
您可以在后端获取和处理该文件。