将复杂的HTML表导出到Excel

时间:2013-10-01 11:24:52

标签: javascript html xml excel html-table

我想将HTML表导出到Excel工作表 如果我不需要保留一些格式并添加图片,我会用CVS格式做到这一点。

我尝试使用Office 2003 XML格式,即

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:o="urn:schemas-microsoft-com:office:office"
          xmlns:x="urn:schemas-microsoft-com:office:excel"
          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:html="http://www.w3.org/TR/REC-html40">
    <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    ...
    </DocumentProperties>
    <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
    ...
    </OfficeDocumentSettings>
    <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
    ...
    </ExcelWorkbook>
    <Styles>...</Styles>
    <Worksheet ss:Name="Sheet1">...</Worksheet>
</Workbook>

然后使用JavaScript

来“下载”一些data URI代码
'data:application/vnd.ms-excel;charset=utf-8, '+
 encodeURIComponent(STRING_XML_REPRESENTATION));

我有两个问题:

  1. 保存为xls(或xlsx)的文档在OpeOffice \ LibreOffice上正常打开,但在Excel
  2. 上引发了错误
  3. 我似乎找不到将图像添加到文件的方法。
  4. 我不想将其保存为xml文件,因为在大多数情况下打开它默认为Web浏览器。

1 个答案:

答案 0 :(得分:1)

回顾ECMA-376。 Excel希望所有文件都包含在zip容器中(并且您必须有一些其他文件,包括[Content_Types].xml

图片必须添加到zip容器中并引用(查看规范)。