如何使用office js api在excel中实现Freeze窗格?

时间:2016-09-29 05:22:50

标签: office-js

我们的插件创建了包含约300列的新工作表。用户希望能够冻结前2列的窗格,因此当他们向右移动时,他们仍然可以看到上下文。关于如何实现这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

目前我们的API中没有此功能,但感谢您的反馈,我们会考虑将来的新功能。

此致 Philip,Office可扩展性团队的开发人员

答案 1 :(得分:1)

此功能现已在Beta中提供。请切换到CDN以访问它。 https://appsforoffice.microsoft.com/lib/beta/hosted/office.js

样品:

async function freezeColumns() {
    await Excel.run(async (context) => {
        const sheet = context.workbook.worksheets.getItem("Sample");

        // Freeze the first two columns in the worksheet.
        sheet.freezePanes.freezeColumns(2);

        //// Similarly, Freeze the top two rows in the worksheet.
        // sheet.freezePanes.freezeRows(2);
        //// Freeze the specified range in top-and-left-most pane of the worksheet.
        // sheet.freezePanes.freezeAt(sheet.getRange("H2:K5"));


        await context.sync();
    });
}

解冻:

async function unfreezeAllPanes() {
await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Sample");
    sheet.freezePanes.unfreeze();

    await context.sync();
    });
}

获取位置:

const frozenRange = sheet.freezePanes.getLocationOrNullObject();
frozenRange.load("address");