根据您要执行的操作,有两种选择。
仅在脚本中格式化
我在 Javascript 和日期格式方面的经验从来都不是令人满意的,不像 Excel 或您通常可以访问的平台上的任何 Microsoft 格式选项。
在使用 Javascript 日期时,我能找到的只是使用基于字符串的方法将格式拼凑在一起。
您首先需要将 Excel 日期转换为 JS 日期,然后从那里开始工作。
试试这个 ...
function main(workbook: ExcelScript.Workbook)
{
let selectedSheet = workbook.getActiveWorksheet();
let v = selectedSheet.getRange("A2").getValue() as number;
let javaScriptDate = new Date(Math.round((v - 25569) * 86400 * 1000));
const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
let formattedDate = javaScriptDate.getFullYear() + '-' + months[javaScriptDate.getMonth()];
console.log(formattedDate)
}
微软实际上为您提供了一份我已应用于我的答案的文档...
https://docs.microsoft.com/en-us/office/dev/scripts/resources/samples/excel-samples#dates
这并不理想,但(我相信)这是您的最佳选择。
要将其应用于整个范围/列,您需要使用远非理想的循环。
将格式应用于整列
这很简单...
function main(workbook: ExcelScript.Workbook)
{
let selectedSheet = workbook.getActiveWorksheet();
selectedSheet.getRange("A:A").setNumberFormat("yyyy-MMM")
}
...您只需要知道要在哪一列上对其进行格式化。