VB.NET 从收到的电子邮件正文中提取Excel表格

VB.NET Extract Excel Tables from received email body

提问人:sickboy 提问时间:7/10/2023 最后编辑:sickboy 更新时间:7/11/2023 访问量:40

问:

我每天都会收到一封电子邮件,其中包含一些 excel 表(每个大约 10rowsx10columns),我希望将它们留空,保持格式和标签不变(只是擦除单元格内容),并将空表存储在变量或 List(Of) 中,以便最终填充它们。

我试图将它们存储在包含 Tag 的 HTML 代码的 List(Of String) 中,但不幸的是,我遇到了很多关于 HTML 代码的各种问题。

编辑:

我添加了我已经要求参考的帖子,我打开了另一个主题以找到另一种实现我目标的方法。

HTML 问题

在示例电子邮件内容下方

enter image description here

有没有其他方法可以做到这一点?

由于我被要求提供调试细节,因此我在下面附上编码细节。

Function GetMailTable(Subject As String, daysAgo As Integer, ParamArray Keywords() As Object)
    Dim myOlApp As New Outlook.Application
    Dim objNamespace As Outlook.NameSpace = myOlApp.GetNamespace("MAPI")
    Dim objFolder As Outlook.MAPIFolder = objNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
    Dim itm As Outlook.MailItem
    Dim Found As Boolean
    Dim strFilter As String
    Dim Subj As String = Subject
    Dim arrList As ArrayList = New ArrayList
    daysAgo = myDate.Subtract(previousBusinessDay(myDate, daysAgo)).TotalDays
    strFilter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:subject" & Chr(34) & " like '%" & Subj & "%'"
    Dim filtereditemssubj As Object = objFolder.Items.Restrict(strFilter)
    Dim filteredItems As Object = filtereditemssubj.Restrict("[ReceivedTime]>'" & Format(myDate.AddDays(-daysAgo), "dd/MM/yyyy") + " 00:00" & "'")
    filteredItems = filteredItems.Restrict("[ReceivedTime]<'" & Format(myDate.AddDays(-daysAgo).AddDays(1), "dd/MM/yyyy") + " 00:00" & "'")
    Dim htmlDoc As New mshtml.HTMLDocument
    Dim tables As mshtml.DispHTMLElementCollection
    Dim Table As mshtml.HTMLTable
    If filteredItems.Count = 0 Then
        Found = False
    Else
        Found = True
        For Each itm In filteredItems
            htmlDoc.HTMLBody = itm.HTMLBody
            tables = htmlDoc.getElementsByTagName("table")
            For Each Table In tables
                arrList.Add(Table)
            Next Table
        Next itm
    End If
    Return arrList
End Function

此代码不起作用,因为我无法获取邮件的 HTML 内容。 是否有另一种可行的方法来访问 Outlook 邮件的 HTML 内容或复制 Outlook 邮件正文中包含的 excel 表格的内容和布局?

HTML vb.net Outlook Excel 表格

评论

2赞 Enigmativity 7/10/2023
请向我们展示您编写的表格和代码。否则,我们真的无能为力,因为我们既不是代码编写服务,也不是读心者。另请阅读如何提问
0赞 Enigmativity 7/11/2023
我已经投票决定重新开放。再投一票就行了。

答: 暂无答案