在为单元格指定值时保持正确的类型

时间:2017-05-07 08:22:31

标签: ms-office office-js

我想使用看似{ "A1:B2": [["01", "02"], ["03", "04"]], "C5": [[4]] }的JavaScript对象启动工作表,我有以下代码:

function sheetIni(data) {
    return Excel.run(function (ctx) {
        var sheet = ctx.workbook.worksheets.getActiveWorksheet();
        for (var key in data) {
            if (data.hasOwnProperty(key)) {
                var range = sheet.getRange(key);
                range.values = newData;
            };
        }
        return ctx.sync().then(function () {
            console.log("done")
        })
    })
};

我意识到工作表中的结果分别是1中的234A1,{{1} },B1A2;它会自动将字符串转换为数字(例如,B2"02")。

有谁知道如何避免这种自动转换?

一般情况下,我如何确保可以忠实地将javascript值分配给单元格值而无需额外转换?

1 个答案:

答案 0 :(得分:3)

将数据分配给任意单元格时,最安全的做法是首先设置数字格式,然后设置值。

对于文本字符串,“@”数字格式用作声明“我希望此单元格包含文本字符串,即使它以数字形式出现”的方式。它与用户手动将值输入Excel中相同。

供将来参考:如果您想要恢复正常工作的代码段,最简单的方法是首先使用Script Lab 创建和共享代码段并在其中共享指向它的链接这个问题。这样,像我这样的人很容易导入代码,进行快速调整,并向您发送最终片段。