自动完成涉及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:
-
使用通过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。
-
使用最新的.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自动化脚本。
希望这有助于,最好的问候,汤姆。