跳至主要内容

如何自动将Outlook中的邮件导出到Excel?

Author: Xiaoyang Last Modified: 2025-05-07

通常,您可以使用导入/导出功能将Outlook中的邮件导出到Excel。但是,如果您需要在邮件到达时自动将其导出到Excel文件中,Outlook并没有提供内置的解决方案。本文介绍了两种实现此目的的方法:

使用VBA自动将收件箱中的新邮件导出到Excel 手动且繁琐

使用Kutools for Outlook快速将选定文件夹中的所有邮件导出到Excel报告 👍快速且简单


使用VBA自动将收件箱中的新邮件导出到Excel

如果您需要一种自动化的方式来将新邮件导出到Excel,可以使用以下VBA代码。该方法会监控收件箱,并在新邮件到达时立即将其详细信息导出到Excel文件中。

步骤1:准备Excel文件

在执行VBA代码之前,请先设置一个Excel工作簿以存储导出的邮件数据。在第一行中,包含以下列标题:序列、发件人名称、发件人电子邮箱、主题和接收时间。

doc auto export emails to excel 1

步骤2:在Outlook中打开VBA编辑器

1. 按 Alt + F11 打开Microsoft Visual Basic for Applications窗口。

2. 在“Project1 (VbaProject.OTM)”窗格中,展开“Microsoft Outlook对象”,然后双击“ThisOutlookSession”。

步骤3:插入VBA代码

复制并将以下VBA代码粘贴到模块中:

Public WithEvents GMailItems As Outlook.Items
Private Sub Application_Startup()
    Set GMailItems = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub GMailItems_ItemAdd(ByVal Item As Object)
    Dim xMailItem As Outlook.MailItem
    Dim xExcelFile As String
    Dim xExcelApp As Excel.Application
    Dim xWb As Excel.Workbook
    Dim xWs As Excel.Worksheet
    Dim xNextEmptyRow As Integer
    On Error Resume Next
    If Item.Class <> olMail Then Exit Sub
    Set xMailItem = Item
    ' Update this path with your actual Excel file path  
    xExcelFile = "C:\Users\DT168\Desktop\split document\kto-data.xlsx"
    If IsWorkBookOpen(xExcelFile) = True Then
        Set xExcelApp = GetObject(, "Excel.Application")
        Set xWb = GetObject(xExcelFile)
        If Not xWb Is Nothing Then xWb.Close True
    Else
        Set xExcelApp = New Excel.Application
    End If
    Set xWb = xExcelApp.Workbooks.Open(xExcelFile)
    Set xWs = xWb.Sheets(1)
    xNextEmptyRow = xWs.Range("B" & xWs.Rows.Count).End(xlUp).Row + 1
    With xWs
        .Cells(xNextEmptyRow, 1) = xNextEmptyRow - 1
        .Cells(xNextEmptyRow, 2) = xMailItem.SenderName
        .Cells(xNextEmptyRow, 3) = xMailItem.SenderEmailAddress
        .Cells(xNextEmptyRow, 4) = xMailItem.Subject
        .Cells(xNextEmptyRow, 5) = xMailItem.ReceivedTime
    End With
    xWs.Columns("A:E").AutoFit
    xWb.Save
End Sub
Function IsWorkBookOpen(FileName As String)
    Dim xFreeFile As Long, xErrNo As Long
    On Error Resume Next
    xFreeFile = FreeFile()
    Open FileName For Input Lock Read As #xFreeFile
    Close xFreeFile
    xErrNo = Err
    On Error GoTo 0
    Select Case xErrNo
        Case 0: IsWorkBookOpen = False
        Case 70: IsWorkBookOpen = True
        Case Else: Error xErrNo
    End Select
End Function

doc auto export emails to excel 2

⚡ 提示:在上述代码中,C:\Users\DT168\Desktop\split document\kto-data.xlsx 代表将存储邮件数据的Excel工作簿的文件路径和名称。请务必修改此路径以匹配您要使用的实际位置和文件名。

步骤4:启用Microsoft Excel对象库

1. 在Microsoft Visual Basic for Applications窗口中,点击“工具” > “引用”。

2. 在“References - Project1”对话框中,向下滚动并勾选“Microsoft Excel对象库”选项。

3. 点击“确定”以应用更改。

doc auto export emails to excel 3

步骤5:保存并重新启动Outlook

1. 保存VBA代码并关闭编辑器。

2. 重新启动Outlook以使更改生效。

结果:

从现在开始,每封到达收件箱的新邮件都会自动导出到指定的Excel工作簿中。

doc auto export emails to excel 4

VBA方法的局限性:

  • ❌ 仅适用于一个收件箱:此方法仅跟踪默认收件箱中的新邮件。如果您有多个账户,它不会捕获其他账户的邮件。
  • ❌ 需要启用宏的Outlook:VBA宏必须启用才能运行,这可能会带来安全问题。
  • ❌ 文件路径依赖:如果Excel文件被移动或删除,代码将失败。
  • ❌ 需要手动设置:用户必须手动输入Excel文件路径并设置VBA环境。

📊 使用 Kutools 实现更智能的邮件统计

使用 Kutools for Outlook统计 功能,轻松跟踪和分析您的邮件活动。现在可以按天、周或月统计已接收的邮件数量,并以清晰、专业的图表查看结果!只需点击几下,即可简化邮件管理并获取有价值的见解。

shot of the Statistics result

使用Kutools for Outlook快速将选定文件夹中的所有邮件导出到Excel报告 👍

如果您需要一种无需使用VBA即可从任何文件夹(收件箱、已发送邮件、自定义文件夹)导出邮件的简便方法,Kutools for Outlook的快速报告功能提供了一个简单的解决方案。

使用Kutools for Outlook解锁无与伦比的邮件处理效率!永久免费获取 70 项强大功能。立即下载免费版本

步骤1:选择文件夹并启用快速报告功能

1. 打开Outlook并导航到要导出的文件夹(收件箱、发件箱、已发送邮件等)。

2. 点击 Kutools Plus > 报告 > 快速报告。

步骤2:选择保存位置

1. 在“保存报告”窗口中,选择一个位置并输入导出的文件名。

2. 点击保存。

doc auto export emails to excel 7

步骤3:打开导出的报告

将出现一条确认消息。点击“是”以打开导出的文件。

doc auto export emails to excel 8

结果:

所选文件夹中的所有邮件都将导出到一个Excel友好的XML文件中,显示发件人、主题、接收时间等信息。

doc auto export emails to excel 9

Kutools for Outlook方法的优势:

  • 适用于任何文件夹:从收件箱、已发送邮件、发件箱或自定义文件夹导出邮件。
  • 无需VBA:无需启用宏或编辑代码。
  • 多账户支持:轻松导出多个电子邮件账户的邮件。
  • 节省时间:只需几次点击即可生成即时报告。
  • 可定制的数据导出:选择要包括的详细信息(主题、发件人、日期等)。
注意要应用Kutools for Outlook的快速报告工具,首先,您应该下载并安装Kutools for Outlook

您应该使用哪种方法?

以下是这两种方法的比较,帮助您决定哪种方法最适合您的需求:

方法适用场景易用性效率
使用VBA代码(自动化但复杂) 自动导出收件箱中的新邮件 ⭐⭐ ⭐⭐⭐⭐
使用Kutools for Outlook(简单且灵活) 快速导出选定文件夹中的所有邮件 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐

通过选择合适的方法,您可以根据自己的工作流程需求高效地将Outlook邮件导出到Excel!


相关文章

  • 在Outlook中将邮件正文表格导出到Excel
  • 当您收到一封包含一些表格的邮件时,有时您可能需要将邮件正文中所有的表格导出到Excel工作表中。通常情况下,您可以复制并粘贴这些表格到工作表中,但在这里,我将介绍一种有效的方法来解决这一问题,特别是当需要导出多个表格时。
  • 在Outlook中提取或导出任务列表到Excel
  • 在使用Outlook时,您可以将任务列表提取到Excel以供其他用途。利用Outlook强大的导出功能,您可以轻松将任务列表导出到Excel。请按照以下教程操作。
  • 在Outlook中导出带有照片的联系人信息
  • 当您从Outlook导出联系人到文件时,只能导出联系人的文本信息。但是,有时您还需要导出照片以及联系人的文本信息,那么如何在Outlook中处理这个任务呢?