代码之家  ›  专栏  ›  技术社区  ›  Sundar R

什么是使涉及到Outlook和Excel的Windows任务自动化的最佳语言?[关闭]

  •  4
  • Sundar R  · 技术社区  · 15 年前

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

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

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

    • 使用特定模板创建Excel工作表(前两行是常量,第三行是本周的星期一和星期五等),并将上面提取的内容连续粘贴到该工作表中。

    • 以不同格式创建内容相同的Outlook电子邮件

    • 将上述Excel工作表与此邮件一起附加。

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

    现在,当我想到自动化这项任务时,Perl的win32::ole立即出现在我的脑海中,因为我最近已经了解了它,并且非常熟悉Perl。但后来,我认为VisualBasicforAutomation可能更适合这项任务,因为它是为这类任务创建的一种语言。

    我的问题是,vba是否足以抵消我的技能集在perl和vb之间的差异?几年前我还是个孩子的时候就玩过vb6,但这和我的vb体验有关。

    我也愿意接受任何其他语言/平台的建议,只要它们允许一些灵活性,并且不太难学习。我也认识一些蟒蛇。

    我看着 this 而且 this , this , this this 但它们要么不相关,要么没有任何好的答案。

    3 回复  |  直到 8 年前
        1
  •  3
  •   Community CDub    8 年前

    我问 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
  •  6
  •   Community CDub    8 年前

    免责声明:我从未使用过Perl或Python。

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

    1. 使用通过PIA(主互操作程序集)公开的COM API,该程序集可从C和其他.NET语言中使用:在So或CodeProject上提供了许多代码示例,用于执行您描述的所有操作。建议您搜索“c office interop”“c outlook interop”“c excel interop”“c office automation”。或者搜索从vb.net到f的其他.NET语言。

    2. 使用最新的.NET工具,您可以使用UI设计器为Excel或Outlook等创建外接程序。我现在正在处理2010年的Excel外接程序,能够将WinForms控件拖放到工作表上,创建事件处理程序,并在设计时编辑属性,这与我在WinForms中的工作方式是一样的。当然,2010年的测试版办公室有一些“粗糙的边缘”,如您所料。

    微软VSTO论坛: VSTO Forum for Office 2003, 2007

    良好的“门户”,用于通过VSTO实现办公自动化: Getting Started (Visual Studio Tools for Office)

    关于Microsoft for Visual Studio 2010 Beta 2的VSTO论坛: 2010 beta 确保并打开标题为“Office Development with Visual Studio 2010 Beta 2 Resources”的“公告”下的下拉面板。

    Microsoft Office 2010试用版论坛: Office 2010

    在Visual Studio 2010 Beta 2中,使用Office 2010 Beta,仅与Excel互操作相关的项目类型不少于六种:

    Excel 2007加载项, Excel 2010加载项, Excel 2007模板, Excel 2010模板, Excel 2007工作簿, Excel 2010工作簿:用于Outlook:Outlook 2007外接程序、Outlook 2010外接程序

    这条索线 Beginning VSTO ? 可能对您有一些价值,我建议您在此搜索“vsto excel”和“vsto outlook”。

        3
  •  0
  •   t0mm13b    15 年前

    使用怎么样 AutoIt 是吗?它的语法类似于VB,可以做任何事情,而且文档非常全面。此外,您可以将其编译为独立的可执行文件,以便在另一台没有autoit的计算机上自动执行任务。它有一个很好的IDE环境来测试和调试自动化脚本。

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