我需要自动执行涉及以下任务的特定任务:
根据一组标准从我的邮箱中提取邮件 - 来自特定用户,具有特定的主题行模式等。
解析每封邮件的邮件正文并提取一些内容(邮件几乎是固定的模式)
使用特定模板创建Excel工作表(前两行是常量,第三行是本周的星期五和星期五等),然后将上面提取的内容以连续的行粘贴到此工作表中。
使用不同格式创建具有相同内容的Outlook电子邮件
(最后发送,但我不想自动化那部分 - 我喜欢在发送邮件之前仔细检查一下。)
现在,当我想到自动完成这项任务时,Perl的Win32 :: OLE立刻浮现在脑海中,因为我最近才了解它,并且在Perl中非常舒服。但是,我认为Visual Basic for Automation可能更适合这项任务,因为它是为这些任务创建的语言。
我的问题是,VBA是否足以抵消Perl和VB之间技能组的差异?我几年前小时候玩过VB6,但那是关于VB体验的程度。
我也愿意接受任何其他语言/平台建议,只要它们具有一定的灵活性并且不太难学。我也知道一些Python。
答案 0 :(得分:6)
免责声明:我从未使用过Perl或Python。
如果您愿意从Macros和VBA“升级”到使用.NET中已有的Visual Studio Office工具(VSTO)一段时间,您可以使用几个强大的新选项来处理Office互操作:< / p>
通过可从C#和其他.NET语言使用的PIA(主互操作程序集)公开COM API:在SO或CodeProject上提供了大量代码示例,用于执行您描述的所有操作。建议您搜索“C#Office Interop”“C#Outlook Interop”“C#Excel Interop”“C#Office Automation”。或者搜索从VB.NET到F#的其他.NET语言。
使用最新的.NET工具,您可以使用UI设计器来创建Excel或Outlook等插件。我正在使用2010年的Excel插件,它非常适合很高兴能够在设计时将WinForms控件拖放到WorkSheet上并创建事件处理程序,并以与在WinForms中工作相同的方式编辑属性。当然,2010 beta Office有一些“粗糙的边缘”,正如您所料。
微软VSTO论坛:VSTO Forum for Office 2003, 2007
通过VSTO为Office Automation提供良好的“门户”:Getting Started (Visual Studio Tools for Office)
Microsoft针对Visual Studio 2010测试版2的VSTO论坛:2010 beta请确保并打开名为“使用Visual Studio 2010 Beta 2资源进行Office开发”的“公告”下的下拉面板
Microsoft Office 2010测试版论坛:Office 2010
在Visual Studio 2010 beta 2中,使用Office 2010测试版,您只有六个与Excel互操作相关的项目类型:
Excel 2007加载项, Excel 2010加载项, Excel 2007模板, Excel 2010模板, Excel 2007工作簿, Excel 2010工作簿:适用于Outlook:Outlook 2007加载项,Outlook 2010加载项
此SO帖子Beginning VSTO ?可能对您有一些价值,我建议您在“VSTO Excel”和“VSTO Outlook”上搜索此处
答案 1 :(得分:3)
我问Best “official” scripting language for Windows programmers,答案主要是PowerShell。这是我发现自动化Outlook的链接:using PowerShell for Outlook automation。
$outlook = new-object -com Outlook.Application
查看您发送的前5封电子邮件的主题
$sentMail = $outlook.Session.GetDefaultFolder(5) # == olFolderSentMail
$sentMail.Items | select -first 5 TaskSubject
和Excel:PowerShell and Excel。
$a = new-object -comobject excel.application
如何更改指定单元格的值?
$a.ActiveSheet.Range("B1").Value2 = "y"
答案 2 :(得分:0)
如何使用AutoIt?它的语法类似于VB,可以做任何事情,而且文档非常全面。此外,您可以将其编译为独立的可执行文件,以便在另一台没有AutoIt的计算机上自动执行该任务。它有一个很好的IDE环境来测试和调试自动化脚本。
希望这有帮助, 最好的祝福, 汤姆。