使用btoa将xls从javascript解析为C#
我编写了一个程序,将用户上传的excel文件从javascript发送到使用btoa将xls从javascript解析为C#,javascript,c#,excel,Javascript,C#,Excel,我编写了一个程序,将用户上传的excel文件从javascript发送到C,然后在那里格式化。该代码适用于.xlsx文件;但是,当我尝试解析.xls文件时,收到以下错误: System.ArgumentNullException:'值不能为null。参数名称: s' 在使用断点进行了一些进一步的测试之后,我相信我已经找到了问题所在,但我无法找到解决方案。以下代码是用于编码文件的javascipt: document.getElementById('selectedFile').addEventL
C
,然后在那里格式化。该代码适用于.xlsx
文件;但是,当我尝试解析.xls
文件时,收到以下错误:
System.ArgumentNullException:'值不能为null。参数名称:
s'
在使用断点进行了一些进一步的测试之后,我相信我已经找到了问题所在,但我无法找到解决方案。以下代码是用于编码文件的javascipt:
document.getElementById('selectedFile').addEventListener('change', function (event) {
var reader = new FileReader();
reader.onload = function () {
filename = event.target.files[0].name;
var uint8Array = new Uint8Array(this.result);
fileContent = btoa(String.fromCharCode.apply(null, uint8Array));
}
reader.readAsArrayBuffer(this.files[0]);
}, false);
当上传的文件类型为.xlsx
,文件内容
返回正确的值;但是,如果上载了.xls
文件,它将返回null
,从而进一步破坏代码
有没有办法使此代码适用于
.xls
文件?或者,在将其解析到后端之前,是否有办法将其转换为.xlsx
?.xlsx
是一种文本格式(XML),因此String.fromCharCode
应该可以正常工作
.xls
是一种二进制文件格式。我不希望字符串函数能与它一起正常工作
您可以使用Excel在格式之间进行转换。转换是非常重要的,虽然从javascript实现并非不可能,但可能不值得花费几个月的时间