将Excel表的整列格式化为String

时间:2017-04-27 00:17:11

标签: office-js scriptlab

我正在使用JavaScript API处理Excel加载项,以在Excel Office 365中构建加载项。 对于Excel表,如何将整个列格式化为默认情况下仅包含字符串。 [我需要在特定列的所有单元格中将数字显示为012而不是12。]

2 个答案:

答案 0 :(得分:2)

您可以先将数字格式设置为文本(设置为@,这是Excel的格式,表示某些内容是文本),然后设置值。

这是一个范围示例(表格非常相似 - 只需获取列的范围)

try {
    await Excel.run(async (context) => {
        const sheet = context.workbook.worksheets.getActiveWorksheet();
        const range = sheet.getRange("A1:A3");
        range.numberFormat = <any>"@";
        range.values = [
            ["012"],
            ["013"],
            ["014"]
        ];
        await context.sync();
    });
}
catch (error) {
    OfficeHelpers.Utilities.log(error);
}

上面的示例是在TypeScript中 - 但是如果您愿意的话,转换为普通的ES5 JS也应该是微不足道的。

您可以在新的脚本实验室(https://aka.ms/getscriptlab)中点击五次点击直播。只需安装Script Lab加载项(免费),然后选择&#34;导入&#34;在导航菜单中,使用以下GIST网址:https://gist.github.com/Zlatkovsky/741c3313825df988ac9840289c012440

答案 1 :(得分:0)

sheet.getRange(&#34; A1:A3&#34;)只会格式化前三个单元格。

sheet.getRange(&#34; A:A&#34;)将为您提供整个A列,而不仅仅是A列中的前3个单元格。