首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在使用office.js设置值时阻止excel自动设置格式

如何在使用office.js设置值时阻止excel自动设置格式
EN

Stack Overflow用户
提问于 2018-08-04 05:21:11
回答 1查看 604关注 0票数 3

我正在尝试将单元格值设置为一致的文本值。我根本不想要任何格式。

我使用了以下代码:

代码语言:javascript
复制
async function setValue() {
    try {
        await Excel.run(async (context) => {
            const sheet = context.workbook.worksheets.getItem("Sample");

            const range = sheet.getRange("C3");
            range.values = [[ 'June 2018' ]];
            range.format.autofitColumns();

            await context.sync();
        });
    }
    catch (error) {
        OfficeHelpers.UI.notify(error);
        OfficeHelpers.Utilities.log(error);
    }
}

这将导致单元格中的日期为Jun-18。我已经找到了this answer,这可能是一种解决办法,但在我的所有数据前加上'会让我的用户感到困惑。像01这样的值也会出现这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-08-04 06:48:11

如果您确实需要它是一个字符串,那么您必须将数据放入一个字符串中,该字符串不会触发Excel对Date对象强制使用类似Date的字符串。为此,一种方法是将空格与非中断空格交换。替换此行:

代码语言:javascript
复制
range.values = [[ 'June 2018' ]];

下面是几行代码:

代码语言:javascript
复制
let date = 'June 2018';
let dateAsString = date.replace(' ', '\xa0');
range.values = [[dateAsString]];

顺便说一句,如果您只想让它看起来像输入字符串,但又希望它是Date类型,那么您只需在创建range对象的行下添加以下行:

代码语言:javascript
复制
range.numberFormat = [["mmmm yyyy"]];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51680214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档