r - 在 R 中使用 saveWorkbook - 如何添加密码?
问题描述
xlsx
我有时使用包(版本 0.6.1)在 R 中创建 Excel 电子表格,并使用saveWorkbook
函数保存这些电子表格。我正在尝试通过password
在保存语句中添加一个变量来对 Excel 文件进行密码保护,如包文档中所示。这种尝试导致我出现以下错误:
#The object WB is a workbook created with the xlsx pacakage
> saveWorkbook(WB, "MyFile.xlsx", password = "PASS");
Error in .jnew("org/apache/poi/poifs/crypt/EncryptionInfo", encMode) :
java.lang.NoSuchMethodError: <init>
我不知道这个错误是什么意思。谁能告诉我出了什么问题以及如何解决这个问题?
解决方案
xlsxjars
也许同伴中缺少该方法。作为解决方法,要在 R 中的 Excel 工作簿上设置密码,您可以使用该RDCOMClient
包,例如:
# devtools::install_github("omegahat/RDCOMClient")
set_excel_psw <- function(filename, password = rstudioapi::askForPassword()) {
require(RDCOMClient)
filename <- normalizePath(path.expand(filename))
Application <- COMCreate("Excel.Application")
wkb <- Application$Workbooks()$Open(filename)
wkb[['Password']] <- password
wkb$Save()
Application$Quit()
Application <- NULL
invisible(gc())
}
xlsx::write.xlsx(iris, tf<-tempfile(fileext = ".xlsx"))
set_excel_psw(filename = tf, password = "foo")
shell.exec(tf)
此处记录了Password属性。
推荐阅读
- excel - 查找和替换,并非所有条目都存在
- talend - 来自 txt 文件的上下文变量
- c++ - 错误:0407008A:rsa 例程:RSA_padding_check_PKCS1_type_1:无效填充 openssl C++
- reactjs - React.js:contentEditable 上的日期选择器
- sql-server - SQL Server Express 备份脚本
- javascript - 使容器适合 contentEditable div 的内容
- android - 当 DRM 会话管理器设置为媒体源时,Exoplayer 显示空白屏幕
- mongodb - Mongdb 无法通过传递变量 id 获取文档
- forms - 相关的多选列表
- python - 为什么是 arr[:][np.newaxis].shape = (1, n) 而不是 (n, 1)?