Как преобразовать HTML-документ с большим количеством таблиц в документ Word?


Я создал HTML-документ со многими таблицами. Как преобразовать документ в Word?

Проблема в том, что если я открываю HTML-документ с помощью Word, я почему-то получаю нестандартные таблицы с двойными строками.

<table border="1" color="#000000" cellpadding="0" cellspacing="0" width=100%>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td width = 15%>0</td>
<td width = 15%>0</td>
<td width = 40%>0</td>
<td> - </td>
</tr>
</table>
4 4

4 ответа:

Самое простое решение: откройте HTML в браузере, выберите таблицу (или весь документ) и скопируйте, а затем вставьте в Word. Вы можете получить еще лучшие результаты при вставке в Excel, а затем скопировать и вставить оттуда в Word (Спасибо Josiah за этот совет). Это часто работает довольно хорошо, особенно если таблица выглядит хорошо / правильно в IE.

Есть и другие решения, но они гораздо сложнее: вам понадобится HTML-парсер и что-то, что может создать OOXML файлы. Если вы хотите попробовать это, используйте Python сBeautiful Soup в качестве HTML-парсера. Написание OOXML объясняется в этом вопросе: Как я могу создать документ Word с помощью Python?

Обратите внимание, что усилия для этого решения, вероятно, составляют 1-2 недели.

Решена проблема преобразования большого количества таблиц в документ Word с использованием стилей css. После открытой генерации.html с Word все таблицы нормальные

Файл CSSTable.css

table.CSSTable {
border-width: 1px;
border-spacing: 0px;
border-style: solid;
border-color: black;
border-collapse: collapse;
background-color: white;
}
table.CSSTable th {
    border-width: 1px;
    padding: 0px;
    border-style: solid;
    border-color: black;
    background-color: white;
    -moz-border-radius: ;
}
table.CSSTable td {
    border-width: 1px;
    padding: 0px;
    border-style: solid;
    border-color: black;
    background-color: white;
    -moz-border-radius: ;
}

Генерировать.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<link rel="stylesheet" href="CSSTable.css" type="text/css">
</head>
<body>
<table class="CSSTable" width=100%>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td width = 15%>0</td>
<td width = 15%>0</td>
<td width = 40%>0</td>
<td> - </td>
</tr>
</table>

Можно использовать altChunk, если документ должен быть открыт в Word. Слово нужно только для того, чтобы открыть его.

В терминах классов SDK от Microsoft OpenXML : вам понадобится AlternativeFormatImportPart типа AlternativeFormatImportPartType.Html

Смотрите this или this для примеров

Из http://www.wordbanter.com/showthread.php?t=105850

" Вы должны зайти в таблицу, выбрать "Таблица", затем Свойства таблицы, затем Параметры. В разделе " интервал ячеек по умолчанию" отменить выбор " разрешить интервал между ячейками."