使用btoa将xls从javascript解析为C#

使用btoa将xls从javascript解析为C#,javascript,c#,excel,Javascript,C#,Excel,我编写了一个程序,将用户上传的excel文件从javascript发送到C,然后在那里格式化。该代码适用于.xlsx文件;但是,当我尝试解析.xls文件时,收到以下错误: System.ArgumentNullException:'值不能为null。参数名称: s' 在使用断点进行了一些进一步的测试之后,我相信我已经找到了问题所在,但我无法找到解决方案。以下代码是用于编码文件的javascipt: document.getElementById('selectedFile').addEventL

我编写了一个程序,将用户上传的excel文件从javascript发送到
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实现并非不可能,但可能不值得花费几个月的时间