Javascript XLSX填充:“;错误:Can';找不到中心目录的结尾:这是zip文件吗?";-棱角分明 XLSX填充:“错误:找不到中心目录的结尾:这是zip文件吗?”-在
在使用XSLX填充时,Angular抛出了一个错误,这让我很为难 错误: 我的代码包含在Templates.XSLX文件的读取器中,然后使用Firecloud数据库中的数据进行填充 代码:Javascript XLSX填充:“;错误:Can';找不到中心目录的结尾:这是zip文件吗?";-棱角分明 XLSX填充:“错误:找不到中心目录的结尾:这是zip文件吗?”-在,javascript,angular,xlsx,Javascript,Angular,Xlsx,在使用XSLX填充时,Angular抛出了一个错误,这让我很为难 错误: 我的代码包含在Templates.XSLX文件的读取器中,然后使用Firecloud数据库中的数据进行填充 代码: 我已经尝试将文件存储到其他地方,但多次尝试后都没有成功。根据文档xmlhttp.open(“GET”,filepath,true)应该是xmlhttp.open(“GET”,serverfilepath,true)
我已经尝试将文件存储到其他地方,但多次尝试后都没有成功。根据文档
xmlhttp.open(“GET”,filepath,true)
应该是xmlhttp.open(“GET”,serverfilepath,true)类似这样的代码-var-oReq=new-XMLHttpRequest();open(“POST”,“stash.php”,true)代码>它使用GET和xmlhttp参数中的文件路径正常工作。我认为使用页面将文件返回到XLSX函数是一种更糟糕的解决方法。但是在其他地方维护这些文件并在需要时获取它们会很有帮助,我正在考虑使用firebase的存储。那么你的意思是这些是下载而不是真正的上传?我将建议您使用表单数据进行上传,我已经使用并知道的示例是有效的。但是,如果您从服务器获取模板,我不确定发生了什么。我在问题部分遗漏了什么?是的,它们是下载。很抱歉我目前正在尝试使用Firebase存储来获取这些文件,但没有成功。
main.c8862013051d6e746aa1.js:1 ERROR Error: Uncaught (in promise): Error: Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html
Error: Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html
at u.readEndOfCentral (main.c8862013051d6e746aa1.js:1)
at u.load (main.c8862013051d6e746aa1.js:1)
at main.c8862013051d6e746aa1.js:1
at e.invoke (polyfills.f6ae3e8b63939c618130.js:1)
at Object.onInvoke (main.c8862013051d6e746aa1.js:1)
at e.invoke (polyfills.f6ae3e8b63939c618130.js:1)
at t.run (polyfills.f6ae3e8b63939c618130.js:1)
at polyfills.f6ae3e8b63939c618130.js:1
at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
at Object.onInvokeTask (main.c8862013051d6e746aa1.js:1)
at j (polyfills.f6ae3e8b63939c618130.js:1)
at j (polyfills.f6ae3e8b63939c618130.js:1)
at polyfills.f6ae3e8b63939c618130.js:1
at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
at Object.onInvokeTask (main.c8862013051d6e746aa1.js:1)
at e.invokeTask (polyfills.f6ae3e8b63939c618130.js:1)
at t.runTask (polyfills.f6ae3e8b63939c618130.js:1)
at d (polyfills.f6ae3e8b63939c618130.js:1)
at t.invokeTask [as invoke] (polyfills.f6ae3e8b63939c618130.js:1)
at _ (polyfills.f6ae3e8b63939c618130.js:1)
exportData() {
var selectedCert = this.selection.selected;
var filepath = "";
var xmlhttp = new XMLHttpRequest();
switch (selectedCert.map((data => data.IDTipo)).toString()) {
case "R101180813F":
filepath = "src/app/preciso-explorer/templates/preciso-medidor-pressao.xlsx";
break;
case "R05150707I-3":
filepath = "src/app/preciso-explorer/templates/preciso-termohigrometro3.xlsx";
break;
case "R100180915F":
filepath = "src/app/preciso-explorer/templates/preciso-vidraria-graduada.xlsx";
break;
case "R101181123A":
filepath = "src/app/preciso-explorer/templates/preciso-medidor-pressao102.xlsx";
break;
}
xmlhttp.open("GET", filepath, true);
xmlhttp.responseType = "arraybuffer";
xmlhttp.onreadystatechange = function () {
console.log("xmlHttp: stateChange ok");
if (xmlhttp.readyState === 4) {
console.log("xmlHttp: State 4 ok");
if (xmlhttp.status === 200) {
console.log("xmlHttp: Status 200 ok");
XLSX.fromDataAsync(xmlhttp.response).then(workbook => {
console.log("dataAsync ok");
if (selectedCert != null) {
var id = (selectedCert.map(data => data["ID"]).toString());
switch (selectedCert.map((data => data.IDTipo)).toString()) {
case "R101180813F": [...]