2013-10-01 6 views
0

Я хочу экспортировать таблицу HTML на лист Excel.
Я бы сделал это с использованием формата CVS, если мне не нужно было форматировать и добавлять картинки.Экспорт таблицы HTML в Excel

У меня есть попытки, используя формат 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)); 

У меня есть 2 проблемы:

  1. Документ сохранен как xls (или xlsx) открывается нормально на OpeOffice \ LibreOffice, но выдает сообщение об ошибке Excel и
  2. Кажется, я не нашел способ добавить изображения к файлу.

Я не хочу сохранять его как файл xml с момента его открытия по умолчанию для веб-браузера в большинстве случаев.

ответ

1

Отзыв ECMA-376. Excel ожидает, что все файлы будут включены в почтовый контейнер (и у вас должно быть несколько дополнительных файлов, в том числе [Content_Types].xml)

Изображения должны быть добавлены в почтовый контейнер и указаны (см. Спецификацию).

+0

Как это сделать программно? –

+1

@OfirFarchy https://github.com/stephen-hardy/xlsx.js является отправной точкой – SheetJS

Смежные вопросы