【问题标题】:Retrieving Outlook calendar items using Matlab使用 Matlab 检索 Outlook 日历项
【发布时间】:2017-03-18 16:01:39
【问题描述】:

我正在使用 Matlab 从一组共享的 Outlook 日历中检索日历约会。我需要在某个日期范围内同时包含定期和非定期约会。此代码有效:

    outlook = actxserver('Outlook.Application');
    mapi = outlook.GetNamespace('mapi');
    explorer = mapi.GetDefaultFolder(9).GetExplorer;
    NavModule = explorer.NavigationPane.Modules.GetNavigationModule(1);
    NavGroup = NavModule.NavigationGroups.GetDefaultNavigationGroup(2);

    filter = {['[Start] >= ''',strDATstart,''' AND [Start] <= ''', strDATend, '''']};

    for i=1:NavGroup.NavigationFolders.Count
        NavFolder = NavGroup.NavigationFolders.Item(i);
        LST = NavFolder.Folder.Items;
        LST.IncludeRecurrences = -1;
        LST.Sort('[Start]');
        LST.Restrict(filter{1});
        etc.

我希望 Restrict 方法从列表中删除超出过滤器设置的日期范围的项目(strDATstart 和 strDATend 在代码中的其他位置设置)。但是,Restrict 方法没有按预期工作,并且 LST 返回 2147483647 个项目(我认为这不合法,而是代表某种溢出条件)。大多数返回的项目都是空的,但列表的整体大小让我的代码非常慢。

对于如何更好地检索或过滤某个日期范围内的这些约会的任何指导,我将不胜感激。

【问题讨论】:

  • 不,确定不是列表的大小。即 hexa 中的 -1 7FFFFFFF

标签: matlab outlook com outlook-calendar


【解决方案1】:

Items.Restrict 是一个返回新(受限)集合的函数。您需要使用返回的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多