JavaScript
这些示例演示如何使用 JavaScript Date 对象。
注意
直接从 Office 脚本代码编辑器运行这些示例。 若要打开代码编辑器,请转到在代码编辑器中自动>创建新脚本>。 将默认代码替换为要运行的示例代码,然后选择“ 运行”。
写入当前日期和时间
以下示例获取当前日期和时间,然后将这些值写入活动工作表中的两个单元格。
function main(workbook: ExcelScript.Workbook) {
// Get the cells at A1 and B1.
let dateRange = workbook.getActiveWorksheet().getRange("A1");
let timeRange = workbook.getActiveWorksheet().getRange("B1");
// Get the current date and time with the JavaScript Date object.
let date = new Date(Date.now());
// Add the date string to A1.
dateRange.setValue(date.toLocaleDateString());
// Add the time string to B1.
timeRange.setValue(date.toLocaleTimeString());
}
读取 Excel 日期
此示例读取存储在 Excel 中的日期,并将其转换为 JavaScript Date 对象。 它使用日期的数字序列号作为 JavaScript Date的输入。
NOW () 函数一文中介绍了此序列号。
function main(workbook: ExcelScript.Workbook) {
// Read a date at cell A1 from Excel.
let dateRange = workbook.getActiveWorksheet().getRange("A1");
// Convert the Excel date to a JavaScript Date object.
let excelDateValue = dateRange.getValue() as number;
let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
console.log(javaScriptDate);
}
在 PivotFilter 中使用日期
此示例对数据透视表应用日期筛选器,以仅显示过去 30 天内的项目。 它使用 JavaScript Date 对象来计算筛选器的日期范围。
function main(workbook: ExcelScript.Workbook) {
// Get the PivotTable named "Pivot" from the workbook.
const pivot = workbook.getPivotTable("Pivot");
// Create Date objects for the current date and the date 30 days ago.
const today = new Date();
const thirtyDaysAgo = new Date(today);
thirtyDaysAgo.setDate(today.getDate() - 30);
// Get the "Last Updated" field from the PivotTable.
const rowHierarchy = pivot.getRowHierarchy("Last Updated");
const rowField = rowHierarchy.getFields()[0];
// Apply a date filter to show only items from the last 30 days.
rowField.applyFilter({
dateFilter: {
condition: ExcelScript.DateFilterCondition.between,
lowerBound: {
date: thirtyDaysAgo.toISOString(),
specificity: ExcelScript.FilterDatetimeSpecificity.day
},
upperBound: {
date: today.toISOString(),
specificity: ExcelScript.FilterDatetimeSpecificity.day
},
}
});
}