我正在尝试将单元格值设置为一致的文本值。我根本不想要任何格式。
我使用了以下代码:
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
这样的值也会出现这个问题。
发布于 2018-08-04 06:48:11
如果您确实需要它是一个字符串,那么您必须将数据放入一个字符串中,该字符串不会触发Excel对Date对象强制使用类似Date的字符串。为此,一种方法是将空格与非中断空格交换。替换此行:
range.values = [[ 'June 2018' ]];
下面是几行代码:
let date = 'June 2018';
let dateAsString = date.replace(' ', '\xa0');
range.values = [[dateAsString]];
顺便说一句,如果您只想让它看起来像输入字符串,但又希望它是Date类型,那么您只需在创建range对象的行下添加以下行:
range.numberFormat = [["mmmm yyyy"]];
https://stackoverflow.com/questions/51680214
复制相似问题