跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-07-31

通常,您可以使用导入/导出功能将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中处理这个任务呢?

最佳 Office 办公效率工具

重磅消息:Kutools for Outlook 推出免费版本!

体验全新 Kutools for Outlook 免费版,70 多个强大功能,永久免费使用!点击立即下载!

🤖 Kutools AI 利用先进的AI技术轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。

📧 邮件自动化自动答复(支持POP和IMAP) /计划发送邮件 /发送邮件时根据规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将群发邮件拆分为单独邮件 ...

📨 邮件管理撤回邮件 / 按主题等方式阻止诈骗邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...

📁 附件专家批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...

🌟 界面魔法😊更多精美个性表情 /重要邮件来临时提醒您 / 最小化而非关闭 Outlook ...

👍 一键高效操作带附件全部答复 /反钓鱼邮件 / 🕘显示发件人时区 ...

👩🏼‍🤝‍👩🏻 联系人与日历从选中的邮件批量添加联系人 / 将联系人组拆分为多个独立组 / 移除生日提醒 ...

使用 Kutools,支持英语、西班牙语、德语、法语、中文及40 多种其他语言,满足您的语言偏好!

一键解锁 Kutools for Outlook。无需等待,立即下载,提升办公效率!

kutools for outlook features1 kutools for outlook features2