自动完成涉及Outlook和Excel的Windows任务的最佳语言是什么?

我需要自动化一个特定的任务,涉及:

  • 根据一组标准从我的邮箱中提取邮件 – 来自特定用户,具有特定的主题行模式等。

  • parsing每封邮件的邮件正文并提取一些内容(邮件具有几乎固定的模式)

  • 用一个特定的模板创build一个Excel工作表(前两行是常量,第三行是本周的星期一和星期五,等等),然后将上面提取的内容粘贴到这个表单中。

  • 使用不同格式的相同内容创buildOutlook电子邮件

  • 用这个邮件附上上面的Excel工作表。

(最后发送它,但我不想自动化这部分 – 我喜欢在发送邮件之前仔细检查一下。)

现在,当我想到自动化这个任务的时候,Perl的Win32 :: OLE在我最近了解到它的时候就开始思考了,而且在Perl中非常舒服。 但是之后,我认为Visual Basic for Automation可能更适合这个任务,因为它是为这些任务创build的语言。

我的问题是,VBA是否足够抵消Perl和VB之间的技能差异? 几年前我还在小孩玩过VB6,但这是关于我的VB体验的程度。

我也愿意接受任何其他语言/平台的build议,只要它们具有一定的灵活性,而且不会太难学。 我也知道一些Python。

我看着这个 ,也是这个 , 这个 , 这个 ,但是他们不相关,或者没有任何好的答案。

我问Windows程序员最好的“官方”脚本语言 ,答案大多是PowerShell 。 这里有一个链接,我发现自动化的Outlook: 使用PowerShell的Outlook自动化 。

$outlook = new-object -com Outlook.Application 

看看你发送的前5封电子邮件的主题

 $sentMail = $outlook.Session.GetDefaultFolder(5) # == olFolderSentMail $sentMail.Items | select -first 5 TaskSubject 

和Excel: PowerShell和Excel 。

 $a = new-object -comobject excel.application 

如何更改指定单元格的值?

 $a.ActiveSheet.Range("B1").Value2 = "y" 

免责声明:我从来没有使用过Perl或Python。

如果您愿意从macros和VBA“升级”到使用.NET中已有的Visual Studio Office Tools(VSTO)一段时间,则可以使用几个强大的新选项来处理Office interop:

  1. 使用通过PIA(主互操作程序集)从C#和其他.NET语言中使用的COM API:在SO或CodeProject上提供大量代码示例,用于执行所描述的所有事情。 build议您在“C#Office Interop”“C#Outlook Interop”“C#Excel Interop”“C#Office自动化”上search。 或者从VB.NET到F#的其他.NET语言search。

  2. 使用最新的.NET工具,您可以使用UIdevise器来创build用于Excel或Outlook的加载项等。我现在正在2010年开发一个Excel加载项,并且非常高兴能够将WinForms控件拖放到WorkSheet上,并在devise时创build事件处理程序和编辑属性,这与我在WinForms中工作的方式相同。 当然,2010 beta版Office也有一些“粗糙的边缘”,正如你所期望的那样。

微软的VSTO论坛 : Office 2003,2007的VSTO论坛

用于通过VSTO进行Office自动化的良好“门户”: 入门(适用于Office的Visual Studio工具)

Visual Studio 2010 beta 2: 2010testing版的Microsoft VSTO论坛请确保并打开“公告”下面的“Visual Studio 2010 Beta 2资源Office开发”下拉框。

Microsoft Office 2010testing版论坛: Office 2010

在Visual Studio 2010testing版2中,使用Office 2010testing版,您只有六个与Excel互操作相关的项目types:

Excel 2007加载项,Excel 2010加载项,Excel 2007模板,Excel 2010模板,Excel 2007工作簿,Excel 2010工作簿:对于Outlook:Outlook 2007加载项,Outlook 2010加载项

这SO线程开始VSTO? 可能对你有一些价值,我build议你在这里search“VSTO Excel”和“VSTO Outlook”

如何使用AutoIt ? 这有一个类似VB的语法,可以做任何事情,再加上文档是相当全面的。 此外,可以将其编译为独立的可执行文件,以便在没有AutoIt的另一台机器上自动执行任务。 它有一个很好的IDE环境来testing和debugging自动化脚本。

希望这有助于,最好的问候,汤姆。