如何将包含大量表格的 HTML 文档转换为 Word 文档?
How to convert an HTML document with lots of tables into a Word document?
我创建了一个包含许多表的 HTML 文档。如何将文档转换为 Word?
问题是,如果我用 Word 打开 HTML 文档,出于某种原因,我会得到非标准的双行表格。
<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>
您可以使用 altChunk
,前提是要在 Word 中打开文档。 Word只需要打开它。
就微软的 OpenXML
SDK 类 而言:
你会想要 AlternativeFormatImportPart
类型 AlternativeFormatImportPartType.Html
最简单的解决方案:在浏览器中打开 HTML,select table(或整个文档)并复制然后粘贴到 Word 中。如果首先粘贴到 Excel,然后从那里复制并粘贴到 Word,您可能会得到更好的结果(感谢 Josiah 的这个技巧)。这通常效果很好,特别是如果 table 在 IE 中看起来 good/correct。
还有其他解决方案,但它们要复杂得多:您需要一个 HTML 解析器和可以创建 OOXML 文件的东西。如果你想尝试这个,使用 Python 和 Beautiful Soup as HTML parser. Writing OOXML is explained in this question: How can I create a Word document using Python?
请注意,此解决方案的工作量可能需要 1-2 周。
解决了使用 css 样式将大量表格转换为 Word 文档的问题。用 Word 打开 Generate.html 后所有表格正常
文件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: ;
}
Generate.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>
来自http://www.wordbanter.com/showthread.php?t=105850
“你必须进入 table, select
"Table",然后是 Table 属性,然后是选项。在 "default cell spacing"
deselect "allow spacing between cells."
我创建了一个包含许多表的 HTML 文档。如何将文档转换为 Word?
问题是,如果我用 Word 打开 HTML 文档,出于某种原因,我会得到非标准的双行表格。
<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>
您可以使用 altChunk
,前提是要在 Word 中打开文档。 Word只需要打开它。
就微软的 OpenXML
SDK 类 而言:
你会想要 AlternativeFormatImportPart
类型 AlternativeFormatImportPartType.Html
最简单的解决方案:在浏览器中打开 HTML,select table(或整个文档)并复制然后粘贴到 Word 中。如果首先粘贴到 Excel,然后从那里复制并粘贴到 Word,您可能会得到更好的结果(感谢 Josiah 的这个技巧)。这通常效果很好,特别是如果 table 在 IE 中看起来 good/correct。
还有其他解决方案,但它们要复杂得多:您需要一个 HTML 解析器和可以创建 OOXML 文件的东西。如果你想尝试这个,使用 Python 和 Beautiful Soup as HTML parser. Writing OOXML is explained in this question: How can I create a Word document using Python?
请注意,此解决方案的工作量可能需要 1-2 周。
解决了使用 css 样式将大量表格转换为 Word 文档的问题。用 Word 打开 Generate.html 后所有表格正常
文件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: ;
}
Generate.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>
来自http://www.wordbanter.com/showthread.php?t=105850
“你必须进入 table, select "Table",然后是 Table 属性,然后是选项。在 "default cell spacing" deselect "allow spacing between cells."