问题:
我有一堆带有多个表的HTML,其中有两个是感兴趣的(上面发布)。第一个表描述了一个人,他们的地址,电话号码等。第二个表描述了有关其帐户的信息。两个表都有标题(<h3></h3>
标记中的文本),可以通过它们引用它们。
我操作HTML相对比较新,所以我的第一个问题是如何将第一个表格导入Access数据库或Excel中,以便如果他们有50个这样的文档,那么
在这个例子中,是姓名,地址,电话,年龄,每行是不同的人。
我的第二个问题稍微复杂一点。第二个表中嵌入了另一个表。从本质上讲,这意味着需要将大量较小的拆分表放入一个完整的表中。也就是说,我希望找到一种方法将其作为主表中的附加列(实际给出自己的标题) 住这个小桌子。我们的想法是以与第一个表相同的方式操作此表。最后一个问题是这些表没有一个可以用来联系它们的公共字段,所以需要一种方法来 第一个表中的字段,并将其附加到第二个表。考虑到这一点,我认为所需的步骤可归纳如下:
- 醇>
对于单个HTML文档,请使用第二个表并执行 附加较小表格标签所必需的操作 主表格
<th colspan="7"></th>
到格式化的部分 如
`<tr> <td style="text-align: center;">1</td> <td
style="text-align: center;">10/2013</td> <td style="text-align:
center;">12345678</td> <td style="text-align: right;">0167</td> <td
style="text-align: center;">10/2014</td> <td style="text-align:
right;">0036</td> <td style="text-align: center;">1111</td> </tr>`
so that all 9 pieces of data get their own column upon import. 2. Take the column whose <th></th> tags contain the string "Name" and add it as the first column in the second table. 3. Import the first table's <td></td> tags to Access. 4. Import the second table's now revised <td></td> tags to Access. 5. Repeat for all HTML documents so that there are two complete tables.
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Customer File</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
body { width: 800px; margin: 40px auto; font-family: Verdana; }
h1 { font-size: 18pt; margin-bottom: 20px; }
h2 { font-size: 14pt; margin-bottom: 20px; }
h3 { font-size: 11pt; text-decoration: underline; margin-bottom: 20px; }
th { text-align: left; }
hr { height: 1px; border: none; margin: 20px 0; color: #ccc; background-color: #ccc; }
.text { font-size: 10pt; }
</style>
</head>
<body>
<!--FIRST TABLE-->
<h3>Customer</h3>
<table class="text" cellspacing="0" cellpadding="0" border="0">
<tr>
<th style="width: 12em;">Name</th>
<td>Tom Thompson</td>
</tr>
<tr>
<th>Address</th>
<td>123 St., Vancouver, BC, V6Z 2M7</td>
</tr>
<tr>
<th>Phone</th>
<td>555-555-1233</td>
</tr>
<tr>
<th>Date of Birth, Age</th>
<td>03/04/1985, 29</td>
</tr>
</table>
<!-- SECOND TABLE-->
<h3>Collection</h3>
<table class="text" cellspacing="0" cellpadding="0" border="0" style="width: 640px;">
<tr>
<th style="text-align: center;">#</th>
<th style="text-align: center;">Date Purchased</th>
<th style="text-align: center;">Product Name</th>
<th style="text-align: right;">$</th>
<th style="text-align: center;">Date of Product Procurement</th>
<th style="text-align: right;">Item Number</th>
<th style="text-align: center;">Order Number</th>
</tr>
<tr>
<td colspan="7">
<br />
</td>
</tr>
<tr>
<th colspan="7">VALUE MENU</th>
</tr>
<tr>
<td style="text-align: center;">1</td>
<td style="text-align: center;">05/10/2013</td>
<td style="text-align: center;">Hamburger</td>
<td style="text-align: right;">4.50</td>
<td style="text-align: center;">01/10/2013</td>
<td style="text-align: right;">0005</td>
<td style="text-align: center;">5678345</td>
</tr>
<tr>
<td colspan="7">
<table class="text" cellspacing="0" cellpadding="0" border="0">
<tr>
<th style="width: 10em;">Cashier Name</th>
<td>Sam Johnson</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:0)
您正在使用Access,因此您在Windows上。看看html agility pack
它使解析和分割html几乎很有趣: - )
从VBA使用我建议在VB.NET或C#中实现该功能,并通过COM公开生成的API,由VBA使用。 其他选项可能是在VB.NET或C#
中使用VSTO创建AddIn 关于通过COM接口公开.NET代码以通过VBA使用的Article on codeplex可能是一个明星点。
答案 1 :(得分:0)
有时通过COM自动化在EXCEL中打开HTML文件更容易,并通过ActiveSheet.Cells(row,col)