【问题标题】:Javascript open content typeJavascript 开放内容类型
【发布时间】:2011-10-08 16:34:12
【问题描述】:

在 javascript 中,我有一个字符串,其中包含一个 SpreadsheetML 文件(excel xml)

我想打开一个新窗口,并将此数据写入其中,但将其作为 excel 打开。

我可以通过 javascript 做到这一点吗?

【问题讨论】:

  • 真正的 XLXS 文件是一个包含多个 XML 压缩文件的 zip 存档。您实际上是否有一个包含 XLSX 文件二进制文件的字符串,或者只是一个 Excel-XML 工作表数据的 XML 内容?
  • 是的,我弄错了,它实际上是 SpreadsheetML,而不是 xlsx。
  • 你也应该删除 xlsx 标签...

标签: javascript xml excel content-type


【解决方案1】:

是的,您可以使用 data URL, 来做到这一点。首先,将文档编码为base64。然后,使用以下 URL 作为窗口源:

var mtype = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
var url = 'data:' + mtype + ';base64,' + base64data;
window.open(url);

这需要modern browser

【讨论】:

  • 注意,这在 IE 中不起作用。根据:developer.mozilla.org/en-US/docs/data_URIs,Internet Explorer 8 及以上版本仅支持 CSS、 中的图像的数据 URI。所以 IE 不理解内容类型。
  • 是的,从 IE 11 开始,不完全支持数据 URI。关注link in the answer 查看当前的浏览器支持。 IE does support 是内容类型参数,而不是电子表格文档的内容类型(在数据 URI 中)。
猜你喜欢
  • 2011-04-11
  • 2012-11-01
  • 1970-01-01
  • 2019-03-08
  • 2014-07-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多