OfficeExtension.TrackedObjects class

包含在请求上下文中的跟踪对象的集合。 有关详细信息 ,请参阅 context.trackedObjects

注解

使用方

示例

// This sample creates many one-cell ranges, then removes each
// cell proxy object from memory before the batch operation completes.
await Excel.run(async (context) => {
    const largeRange = context.workbook.getSelectedRange();
    largeRange.load(["rowCount", "columnCount"]);
    await context.sync();

    const trackedObjects: OfficeExtension.TrackedObjects = context.trackedObjects;

    for (let i = 0; i < largeRange.rowCount; i++) {
        for (let j = 0; j < largeRange.columnCount; j++) {
            const cell = largeRange.getCell(i, j);
            cell.values = [[i *j]];

            // Release the cell proxy object from memory now that we're
            // done with it. The memory is freed on the next context.sync() call.
            trackedObjects.remove(cell);
        }
    }

    await context.sync();
});

方法

add(object)

跟踪新对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。

add(objects)

跟踪一组对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。

remove(object)

如果给定的代理对象已在此集合中,则此方法释放与 对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。

remove(objects)

如果给定的代理对象已在此集合中,则此方法将释放与对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 将不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。

方法详细信息

add(object)

跟踪新对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。

add(object: ClientObject): void;

参数

返回

void

示例

// This sample shows how to track a Word proxy object so it can be used
// across multiple context.sync() calls.
await Word.run(async (context) => {
    // Create a paragraph proxy object.
    const paragraph = context.document.body.insertParagraph(
        "This paragraph is tracked across sync calls.",
        Word.InsertLocation.end
    );

    // Track the paragraph so it remains valid across sync calls.
    context.trackedObjects.add(paragraph);
    await context.sync();

    // The tracked paragraph can still be used after the preceding sync.
    paragraph.font.bold = true;
    await context.sync();

    // Remember to release the object from memory once you're done with it.
    context.trackedObjects.remove(paragraph);
    await context.sync();
});

add(objects)

跟踪一组对象,以便根据文档中的周围更改自动调整。 只有某些对象类型需要此项。 如果在“.sync”调用和“.run”批处理的顺序执行之外使用对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将对象添加到跟踪的对象集合。 如果此对象是 Word 中的集合的一部分,则还应跟踪父集合。

add(objects: ClientObject[]): void;

参数

返回

void

remove(object)

如果给定的代理对象已在此集合中,则此方法释放与 对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。

remove(object: ClientObject): void;

参数

返回

void

示例

// This sample inserts many paragraphs into a Word document, removing each
// paragraph proxy object from memory after it's used.
await Word.run(async (context) => {
    const body = context.document.body;

    for (let i = 0; i < 500; i++) {
        const paragraph = body.insertParagraph(`Paragraph ${i}`, Word.InsertLocation.end);

        // Release the paragraph proxy object from memory now that we're
        // done with it. The memory is freed on the next context.sync() call.
        context.trackedObjects.remove(paragraph);
    }

    await context.sync();
});

remove(objects)

如果给定的代理对象已在此集合中,则此方法将释放与对象关联的内存。 需要在内存释放生效之前调用 context.sync() 。 如果给定的代理对象不在此集合中,则调用 后 context.sync() 将不会存储代理对象。 这加快了为一次性操作创建许多对象的实例的速度。

remove(objects: ClientObject[]): void;

参数

返回

void