R用密码保护保存一个excel工作簿

我有点印象深刻,因为到目前为止我找不到答案。

我有一个小的R脚本,从一个来源加载数据,并从它写几十个Excel文件。 现在的问题是:这些文件需要密码保护。

目前我的脚本正在使用XLConnect库来保存excel文件。 脚本是这样的:

# Load data from source source = <connection string to source> dataFromSource = <read from source> # Process for (data in dataFromSource) { wb = loadWorkbook( paste("myWorkbook", sourceName, ".xlsx"), create = TRUE) createSheet(wb, name = "sheet") <put data into the "sheet"> saveWorkbook(wb) } 

所以,简单一点: 如何在R中创build一个密码保护的Excel文件?

您应该指定是否要保护整个工作簿或单个工作表。 如果您正在寻找密码保护单张纸,您可以使用以下rJavafunction(在保存工作簿之前):

 rJava::.jcall(wb$getSheet("Sheet1"),"V","protectSheet", "MyPassword123") xlsx::saveWorkbook(wb,"C:/myfilepath) 

“.jcall”函数将密码应用于工作簿中指定的工作表。 “rJava”库必须安装并正常工作才能正常工作。

注意

这个函数只有在使用XLSX包来处理R中的Excel文件时才起作用。我使用XLConnect最初编写文件,然后使用XLSX将它们读回来,应用密码保护并将文件重新保存到相同的path。

如果您有权访问文件存档器并且无法安装rJava ,则可以使用其他输出格式的解决方法是像往常一样保存文件,然后使用密码保护进行存档。

例如使用7-zip:

 setwd("c:/Program Files/7-Zip/") pwd <- "123" shell(paste0("7z ad:/Data/myfile.zip d:/Data/myfile.xlsx -p", pwd))