Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将电子邮件信息导入到excel

将电子邮件信息导入到excel
EN

Stack Overflow用户
提问于 2015-08-14 15:23:27
回答 2查看 80关注 0票数 0

我正在尝试将电子邮件信息从Outlook中共享收件箱的子文件夹导入到excel电子表格中。到目前为止,我遇到了很多问题,比如访问收件箱的子文件夹,但我找到了解决方案。我现在遇到的问题是代码在收件箱中存在相同数量的电子邮件后停止。例如,我试图从"Archive“文件夹(收件箱的子文件夹)中获取信息,但如果我的收件箱中有20封电子邮件,那么当计数达到20时,代码就会停止,只给我"Archive”文件夹中20个项目的信息

请看下面从Outlook执行的代码。我已经标记了代码停止的地方。当我将光标悬停在"aOutput“上时,它显示错误"aOutput(lCnt,1) = Subscript out out range”。如果我将代码跳到"SetxlApp...“行它将给我的excel工作表填充数据的所有电子邮件到这一点(20电子邮件,即相同数量的项目在我的收件箱),但我需要它保持循环通过文件夹的其余部分(可能是数千个项目)。有谁能解释一下这个问题吗?还有其他建议吗?谢谢你的帮助。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub EmailStats()

Dim olMail As Outlook.MailItem
Dim aOutput() As Variant
Dim lCnt As Long
Dim xlApp As Excel.Application
Dim xlSh As Excel.Worksheet
Dim flInbox As Folder
Dim olFolder As Outlook.MAPIFolder

Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Team Inbox")

Set flInbox = Application.GetNamespace("MAPI").GetSharedDefaultFolder(myRecipient, olFolderInbox)

Set olFolder = flInbox.Folders("ARCHIVE")
ReDim aOutput(1 To flInbox.Items.Count, 1 To 4)

For Each olMail In olFolder.Items
    If TypeName(olMail) = "MailItem" Then
    On Error GoTo ErrorSkip
        lCnt = lCnt + 1
        aOutput(lCnt, 1) = olMail.SenderEmailAddress '**Code stops here**
        aOutput(lCnt, 2) = olMail.ReceivedTime
        aOutput(lCnt, 3) = olMail.ConversationTopic
        aOutput(lCnt, 4) = olMail.Subject
    End If
ErrorSkip:
Next olMail

Set xlApp = New Excel.Application
Set xlSh = xlApp.Workbooks.Add.Sheets(1)

xlSh.Range("A1").Resize(UBound(aOutput, 1), UBound(aOutput, 2)).Value = aOutput
xlApp.Visible = True

End Sub
EN

回答 2

Stack Overflow用户

发布于 2015-08-14 16:35:12

去掉On Error GoTo ErrorSkip行,看看返回了什么错误(如果有)。

票数 0
EN

Stack Overflow用户

发布于 2015-09-21 15:06:27

经过反复试验,我找到了答案。对于感兴趣的人,请参阅下面的代码,将电子邮件详细信息从共享收件箱导入到excel工作表中。只需将“共享收件箱”文本更改为您自己的共享收件箱的名称即可。我的收件箱结构为“共享收件箱”>“收件箱”>“存档”。您还需要在Set objFolder行上更改这些设置,以指定所需的文件夹。

我仍然有一个问题,当代码遇到非邮件项目(未送达通知或会议邀请)时停止,但正在研究解决方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub EmailStatsV3()

Dim olMail As Outlook.MailItem
Dim aOutput() As Variant
Dim lCnt As Long
Dim xlApp As Excel.Application
Dim xlSh As Excel.Worksheet
Dim flInbox As Folder

'Gets the mailbox and shared folder inbox
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Shared Inbox")

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objInbox = objNamespace.GetSharedDefaultFolder(myRecipient, olFolderInbox)

'Uses the Parent of the Inbox to specify the mailbox
strFolderName = objInbox.Parent

'Specifies the folder (inbox or other) to pull the info from
Set objMailbox = objNamespace.Folders(strFolderName)
Set objFolder = objMailbox.Folders("Inbox").Folders("ARCHIVE")
Set colItems = objFolder.Items

'Specify which email items to extract
ReDim aOutput(1 To objFolder.Items.Count, 1 To 5)
For Each olMail In objFolder.Items
If TypeName(olMail) = "MailItem" Then

        lCnt = lCnt + 1
        aOutput(lCnt, 1) = olMail.SenderEmailAddress 'maybe stats on domain
        aOutput(lCnt, 2) = olMail.ReceivedTime 'stats on when received
        aOutput(lCnt, 3) = olMail.ConversationTopic 'group based on subject w/o regard to prefix
        aOutput(lCnt, 4) = olMail.Subject 'to split out prefix
        aOutput(lCnt, 5) = olMail.Categories 'to split out category
End If

Next

'Creates a blank workbook in excel then inputs the info from Outlook
Set xlApp = New Excel.Application
Set xlSh = xlApp.Workbooks.Add.Sheets(1)

xlSh.Range("A1").Resize(UBound(aOutput, 1), UBound(aOutput, 2)).Value = aOutput
xlApp.Visible = True


End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32013502

复制
相关文章
将excel文件导入到数据库
参考:http://blog.csdn.net/jayxujia123/article/details/13684313
保持热爱奔赴山海
2019/09/18
4.5K0
将excel文件导入到数据库
Python将数据库数据导入到EXCEL
      每次给运营导数据的时候,如果不用工具的话,就是直接生成.csv格式的文件,这样的文件不支持'sheet',每次还有手工进行,相当的不科学,今天试试Python生成excel文件。
py3study
2020/01/08
2.7K0
laravel5.4将excel表格中的信息导入到数据库中
本功能是借助 Maatwebsite\Excel 这个扩展包完成的,此扩展包的安装过程请参考上篇博文:http://www.cnblogs.com/zhuchenglin/p/7122946.html
lin_zone
2018/08/15
2.8K0
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
mzlogin
2020/04/16
4.8K0
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
零式的天空
2022/03/24
4.7K0
DataTable导入到Excel文件
public static bool DataTableToExcel(System.Data.DataTable dt, string fileName, bool showFileDialog=false)         {             if (showFileDialog)             {                 SaveFileDialog saveFileDialog = new SaveFileDialog();                 saveFile
跟着阿笨一起玩NET
2018/09/18
1.5K0
java 导入到EXCEL表格
package com.fh.util; import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.p
FHAdmin
2021/09/27
1.2K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
前言:   在之前的几篇博客中写过.NET Core使用NPOI导出Word和Excel的文章,今天把同样我们日常开发中比较常用的使用Excel导入数据到MySQL数据库中的文章给安排上。与此同时还把NPOI-ExportWordAndExcel-ImportExcelData这个开源项目升级到了.NET Core 3.1版本(注意之前一直是在.NET Core2.2的基础上开发的),升级的过程中遇到了不少坑,在项目中会有一些注释关于升级到.NET Core3.1需要修改的代码这里就不做详细的讲解了可以Cl
追逐时光者
2020/09/16
4.7K0
.NET Core使用NPOI将Excel中的数据批量导入到MySQL
python将一维数组导入到excel表格,并使用Origin绘图
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138880.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
1.7K0
python将一维数组导入到excel表格,并使用Origin绘图
Excel坐标点导入到ArcGIS
在最近的工作中,需要将坐标点(Excel格式)导入到ArcGIS中,用来做地理可视化和数据统计,例如下面的坐标点数据。
罗罗攀
2019/07/31
4.2K0
Excel坐标点导入到ArcGIS
如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候,
全栈程序员站长
2022/07/05
4.4K0
如何使用免费控件将Word表格中的数据导入到Excel中
java 从EXCEL导入到系统
package org.fh.util; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel
FHAdmin
2022/01/11
7900
将XML导入到对象中
注意:使用的任何XML文档的XML声明都应该指明该文档的字符编码,并且文档应该按照声明的方式进行编码。如果未声明字符编码, IRIS将使用前面的“输入和输出的字符编码”中描述的默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用的字符集。
用户7741497
2022/07/04
1.6K0
java 从EXCEL导入到数据库
package com.fh.util; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel
FHAdmin
2021/09/28
2.4K0
将stdout、stderr导入到指定文件
在编写程序中,经常用到stdout、stderr作为输出,通常stdout用于输出程序运行正常时的信息,stderr用于输出程序出错时的信息。我们可以通过一些命令将stdout、stderr在屏幕上的输出导入到指定的文件。   1、准备工作   带有stdout、stderr输出的test.cpp   /*   ** test.cpp   */   #include <iostream>   #include <stdlib.h>   using namespace std;   int main(int argc, char *argv[])   {    cout << "This is stdout...." << endl;    cerr << "This is stderr..." << endl;    return 0;   }   用g++编译该文件:   $ g++ test.cpp -o test   执行 test ,屏幕上打印stdout、stderr的信息   This is stdout....   This is stderr...   2、导入stdout的结果到指定文件    在csh、sh下,使用”>”将stdout的结果导入到指定文件,本例中执行   ./test > out.log    查看out.log,可以看到里面写有“This is stdout....”。   使用”>>”将stdout的结果追加到指定文件中,本例中执行   ./test >> out.log    查看out.log,可以看到增加了一行“This is stdout....”。   3、导入stderr到指定文件   在 csh 中,用 ">" 将 stdout 导向,用 ">&" 则能将 stdout 与 stderr 一起导向。可是不能只单独把 stderr 转向。最好的方法是   (./test > out.log) >& err.log   以上的命令会开一个 subshell 执行 "./test";而这个 subshell 的 stdout 则被转向到out.log,同时这个 subshell 的 stdout 和 stderr 则都被转向到 err.log,但是因为 stdout 已经先被转向了, 所以 stderr 就会被转到 err.log 了。   如果你只是单纯的不想把 stdout 做转向,那么就用 sh 来帮你吧。   sh -c './test 2> err.log'   如果同时需要得到stdout、stderr的信息,也很简单,直接使用>&就可以了。   ./test >& err.log(王朝网络 wangchao.net.cn)
阳光岛主
2019/02/19
1.6K0
将spring源码导入到eclipse中
前置条件: 1. 正确安装jdk,并配置好JAVA_HOME、PATH。(我这里安装的是jdk1.8) 2. 正确安装好eclipse。(我的eclipse版本是: Neon Release (4.6.0)) 步骤: 1. 首先去下载spring的源码 https://github.com/spring-projects/spring-framework/releases。 因为我的jdk版本是1.8,所以我这里下载的版本是4.3.2。 下载完成之后解压到本地目录。 2. spring源码的编译需要grad
SecondWorld
2018/03/14
1.5K0
将spring源码导入到eclipse中
通过Sqoop将MySQL数据导入到HDFS/HBase
本文通过介绍如何通过Sqoop将MySQL数据导入到HDFS/HBase,以方便后续的大数据计算和分析。主要包括以下步骤:安装和配置Sqoop,创建数据库和表,使用shell脚本生成测试数据,导入到HDFS和HBase。
挖掘大数据
2017/12/20
2.6K0
Apache Sqoop 将mysql导入到Hadoop HDFS
第 21 章 Apache Sqoop 目录 21.1. 安装 Sqoop 21.2. sqoop2-tool 21.2.1. verify 21.2.2. upgrade 21.3. sqoop2-shell 21.3.6.1. link 21.3.5.1. create job 21.3.5.2. show job 21.3.5.3. start job 21.3.5.4. status job 21.3.4.1. hdfs-connector 21.3.4.2. generic-jdbc-connec
netkiller old
2018/03/05
2K0
从Word文件抽取数据导入到Excel文件
pip3 install python-docx; pip3 install xlwl; 从docx抽取数据 import docx def get_docx(): from docx import Document path = "info.docx" document = Document(path) Lines = [] for paragraph in document.paragraphs: Lines.append(paragraph.text) return
Spaceack
2020/11/04
1.7K0
java工具类(excel导入到数据库)
package com.longrise.LGCS.Logic; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import ja
java攻城狮
2020/10/10
2.9K0

相似问题

使用C#将广告信息导入到Excel中

10

使用select将选定的信息从excel导入到with SQL

12

将列表导入到excel

11

ssis包将数据从电子邮件附件导入到excel

13

如何获取将表格导入到excel中的用户详细信息

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文