Excel 错误“.xls”的格式与文件扩展名指定的格式不同

Excel 错误“.xls”的格式与文件扩展名指定的格式不同,excel,extjs,Excel,Extjs,我发现了一个插件,可以帮助我将ExtJS网格数据导出到MS Excel工作表中。 除了在打开文件之前出现的错误之外,所有这些都非常有效 我的和平守则: if (Ext.isChrome || Ext.isGecko) { // local download var gridEl = this.getEl(); var el = Ext.DomHelper.append(gridEl, { tag: "a",

我发现了一个插件,可以帮助我将ExtJS网格数据导出到MS Excel工作表中。

除了在打开文件之前出现的错误之外,所有这些都非常有效

我的和平守则:

if (Ext.isChrome || Ext.isGecko) { // local download
            var gridEl = this.getEl();

            var el = Ext.DomHelper.append(gridEl, {
                tag: "a",
               download: title + "-" + Ext.Date.format(new Date(), 'Y-m-d') + '.xls',
               href: location
            });

            el.click();

            Ext.fly(el).destroy();

        }
一种解决方案建议我删除撇号,因此我尝试:

download: title + "-" + Ext.Date.format(new Date(), "Y-m-d") + ".xls",

但是没有运气。有什么想法吗?

该错误与下载链接无关,而是与下载数据的内容有关。链接告诉Excel,2003年以前它应该是一个*.xls文件,但它不包含Excel数据,而是包含HTML或XML。@shadin:您可以将文件扩展名更改为xlsx,或者使用XlFileFormat.xlExcel8强制Excel对象保存为xls格式。@Paresh J:我不相信更改扩展名会使事情变得更好。我怀疑Excel将不再打开数据,因为数据是2003年以前Excel的SpreadsheetML,而不是OpenXML。并使用XlFileFormat强制Excel对象以XLS格式保存。xlExcel8是一个很好的观点。但是如何使用它呢?@Shadin:谢谢你添加到你使用的插件的链接。我怀疑插件会生成SpreadsheetML。这种类型的本机类型是XML而不是XLS。但是,默认情况下,如果它注册为xml的默认应用程序,那么as*.xml文件Excel将只打开它。因此,要么你接受警告信息,要么你使用真正可以创建Excel文件的东西。我明白了。我知道了。非常感谢阿克塞尔!