r - 错误:呼叫被被呼叫者拒绝。COMStop() - 读取 excel 密码保护文件 - 使用 R - xl.read.file() 函数
问题描述
我正在使用该功能pblapply (FileNames, ProcessFile)
我的ProcessFile对象派生自使用
xl.read.file ()
(来自excel.link
包)的函数
insidepblapply
xl.read.file ()
读取文件夹中的几个 excel 文件(我的输入是所有文件路径的列表 - FileNames),所有文件都受密码保护。
读取这些文件后,该函数会进行简单的修改并将所有数据编译到一个羽毛文件中以供将来分析。
我的问题是处理被中断并且正在读取的文件自行打开,我必须手动输入密码,有时在输入密码后处理继续(excel文件自行关闭)和其他时间稍后添加被中断(excel文件保持打开状态-excel询问我是否要编辑)。
错误是:
错误:呼叫被被呼叫者拒绝。
调用方:COMStop(“调用被被调用者拒绝。”,-2147418111L)
浏览 [1]>
我需要自动处理。无需干预过程。有人能帮我吗?
代码是:
ProcessFile <- function(FileFullPath){
从文件中读取数据库工作表
DataBase <- xl.read.file(filename = FileFullPath,
xl.sheet = "Database",
password = "xxx",
write.res.password="xxx")
简单的修改
RenameCols <- data.frame(original = names(DataBase),
original_unique = make.unique(names(DataBase))) %>%
mutate(visits = if_else(original == "NA", "VISITA_", NA_character_),
visits_nbr = str_split_fixed(original_unique, "\\.", 2)[,2],
visits_nbr = as.numeric(visits_nbr),
visits_nbr = if_else(is.na(visits_nbr), 1, visits_nbr + 1),
renamed = if_else(original == "NA", paste0(visits, visits_nbr), original))
names(DataBase) <- RenameCols$renamed
rm(RenameCols)
从文件中读取参考工作表并进行简单修改
RefData <- xl.read.file(filename = FileFullPath,
xl.sheet = "Ref",
header = FALSE,
password = "xxx",
write.res.password="xxx") %>%
t %>%
as.data.frame %>%
setnames(c("1", "2", "3", "4", "5"),
c("TOOL_VERSION", "COMPUTER_NAME", "USER_NAME", "EXPORT_TIMESTAMP", "ORIGINAL_FILENAME"))
数据准备
DataBase %<>%
mutate(TOOL_VERSION = RefData$TOOL_VERSION[1],
COMPUTER_NAME = RefData$COMPUTER_NAME[1],
USER_NAME = RefData$USER_NAME[1],
EXPORT_TIMESTAMP = RefData$EXPORT_TIMESTAMP[1],
ORIGINAL_FILENAME = RefData$ORIGINAL_FILENAME[1]) %>%
select(TOOL_VERSION, COMPUTER_NAME, USER_NAME, EXPORT_TIMESTAMP, ORIGINAL_FILENAME, everything())
rm(RefData)
invisible(gc())
return(DataBase)
}
解决方案
推荐阅读
- javascript - 我需要在 Google 表格上重新定义脚本
- maven - 好友 devops 构建失败:java11
- azure - 个人帐户出现在 Azure AD 中
- c# - IronPython:从 c# 启动 .py 脚本时出错
- android - `.db` 文件在调用 Room.createFromAsset("initialData.db") 时应该采用什么格式?
- python - 无论操作系统如何,如何在 python 中连接 oracle 数据库
- elasticsearch - 重复的 ElasticSearch 文档
- kubernetes - kubenrates (k8s) nd POD OOMKILLED 在非工作时间且没有内存峰值
- python - 如何在北极立体投影中添加更多经度/纬度线
- git - 如何保存或“隐藏”最后一次提交?