JavaScript Date 示例

这些示例演示如何使用 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
      },
    }
  });
}

另请参阅