在Office Scripts中将数组值以文本格式写入单元格区域
解决Office Scripts写入Excel时保留前导零的问题
要保留带前导零的文本内容,核心是先将目标单元格区域设置为文本格式,再写入数据。Excel的常规格式会自动将类似"00123"的字符串识别为数字并去除前导零,因此需要提前指定格式。
修改后的脚本
function main(workbook: ExcelScript.Workbook, wsName: string, startCell: string, strArr: string) { // 将字符串转为二维数组 let dataArr: string[][] = JSON.parse(strArr); // 获取目标工作表 let ws = workbook.getWorksheet(wsName); // 计算目标数据区域 let dataRng = ws.getRange(startCell).getAbsoluteResizedRange(dataArr.length, dataArr[0].length); // 关键步骤:将区域设置为文本格式(@代表文本格式代码) dataRng.setNumberFormat("@"); // 写入数据 dataRng.setValues(dataArr); }
关键说明
setNumberFormat("@"):将目标区域的数字格式设置为文本,强制Excel将后续写入的内容视为纯文本,不会自动转换为数字类型。- 必须先设置格式再写入值:如果先写值再改格式,已经被转换的数字无法恢复前导零,顺序不能颠倒。
内容的提问来源于stack exchange,提问作者mean_
相关产品推荐
相关产品推荐

