You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言实现自动导入每日更新Excel数据集(排除节假日)

解决方案

可以通过自动计算符合要求的目标日期(排除周末和意大利法定节假日),再拼接生成文件路径的方式实现自动读取,具体步骤如下:

1. 安装并加载所需包

需要用到处理日期的lubridate、读取Excel的readxl,以及获取意大利法定节假日的timeDate包:

install.packages(c("lubridate", "readxl", "timeDate"))
library(lubridate)
library(readxl)
library(timeDate)

2. 定义函数获取有效目标日期

写一个函数自动找到当前日期前的最近有效工作日(非周末、非意大利法定节假日):

get_valid_date <- function() {
  current_date <- Sys.Date()
  target_date <- current_date - days(1)
  
  # 循环往前推,直到找到符合要求的日期
  while (wday(target_date) %in% c(1, 7) | isHoliday(target_date, holidayItaly())) {
    target_date <- target_date - days(1)
  }
  
  # 格式化为文件名需要的MM_DD_YYYY格式
  format(target_date, "%m_%d_%Y")
}

3. 自动生成路径并读取数据

用函数返回的日期拼接文件路径,再读取数据:

# 生成完整文件路径
file_path <- paste0("C:/Users/Seyma/Docs/DF_", get_valid_date(), ".xlsx")

# 读取数据集
my.df <- read_excel(file_path)

关键说明

  • wday(target_date)返回日期对应的星期数,1代表周日,7代表周六,以此排除周末
  • isHoliday(target_date, holidayItaly())会判断目标日期是否为意大利法定节假日,holidayItaly()默认获取当前年份的节假日,跨年份场景下循环逻辑会自动处理
  • 如果你的文件名日期格式是DD_MM_YYYY(比如04_05_2023代表5月4日),只需把format函数里的参数改成"%d_%m_%Y"即可

内容的提问来源于stack exchange,提问作者symkly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:02:12