在MS Word中,我有一个宏,它将请求发送到Web服务器,然后返回数据html 我的宏
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
<title>Результат поиска</title>
<link href="css/print.css" rel="stylesheet" type="text/css">
</head>
<body>
<div style="text-align: center;">
<span style="font-weight: bold; font-size: 110%;">Search result</span>
</div>
<table id=result>
<tr>
<th>Some text</th>
<th>Some text</th>
<th>Some text</th>
<th>Some text</th>
<th>Some text</th>
<th>Some text</th>
</tr>
<tr>
<td>Some text</td>
<td class='leftAlign'>Some text<br>Some textSome textSome text</td>
<td>Some text</td>
<td class='leftAlign'>Some text<br>Some textSome textSome textSome textSome text</td>
<td>Some text</td>
<td></td>
</tr>
</table>
</body>
现在在Word文档中,我的宏插入响应为简单文本
public InputStream getBlob(Long id) throws SQLException {
PreparedStatement stmt = null;
ResultSet rs = null;
try {
stmt = connection.prepareStatement("select blob_contents from some_table where id = ?");
stmt.setLong(1, id);
rs = stmt.executeQuery();
if (rs.next()) {
return rs.getBinaryStream("blob_contents");
} else {
return null;
}
} finally {
if (stmt != null) {
stmt.close();
}
if (rs != null) {
rs.close();
}
}
}
请帮助我,如何在正常的WORD表中转换我的响应(table id =&#34; result&#34;)?像这样 普通的Word表
答案 0 :(得分:0)
实际上,Mike指出的帖子是一个很好的起点:将HTML表格字符串转换为Word可以处理的内容。 Word有一个Range.ConvertToTable函数,它将分隔文本格式的数据转换为表格。记录(行)分隔符必须是ANSI 13(vbCr);字段(列)分隔符可以是您喜欢的任何内容。
所以:1)删除&lt; tr&gt;从表定义; 2)替换&lt; / tr&gt;使用ANSI 13(vbCr)并删除最后一个标签; 3)删除&lt; td&gt;从表定义; 4)替换&lt; / td&gt;使用您选择的字段分隔符(不在字段内容中的内容)并删除最后一个标记。
结果将是一个字符串,您将其写入您希望文档中的表格的Range,然后将其转换为表格:
rng.Text = stringTableDef
Dim tbl as Word.Table
Set tbl = rng.ConvertToTable('Params here)
您肯定要设置第一个参数 - 字段分隔符。检查其他参数是否需要它们,它们都是可选的。供您参考,请参阅方法文档:https://msdn.microsoft.com/en-us/library/office/ff835980.aspx
答案 1 :(得分:-1)
This should work for Microsoft Word and it also contains examples written in VBA.
I guess you've then got to find a way of parsing the HTML into the table cells.