如何将受密码保护的excel文件读入r?
我已经尝试过excel.link但它不适用于R版本3.2.3(我的版本)
我也尝试过RDCOMClient,但它也不适用于R版本3.2.3
答案 0 :(得分:7)
XLConnect(0.2-13)现在可以读取受密码保护的Excel文件
安装最新版本的XLConnect和XLConnectJars(0.2-13)
install.packages("XLConnect")
install.packages("XLConnectJars")
安装Unlimited Strength Java(TM)密码术扩展政策 文件 (在OS X和Windows上是必需的 - 在使用OpenJDK 1.8的Ubuntu linux上不需要)
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
How to install unlimited strength JCE for Java 8 in OS X?
library(XLConnect)
使用测试文件:
https://github.com/miraisolutions/xlconnect/files/794219/TestWorkbook.xlsx
wb <- loadWorkbook("TestWorkbook.xlsx", password="pass")
test <- readWorksheet(wb, "sheet1")
> data
id value1 value2
1 1 1 5
2 2 2 4
3 3 3 3
4 4 4 2
5 5 5 1
答案 1 :(得分:7)
我刚刚使用了xl.read.file
软件包中的excel.link
。
https://rdrr.io/cran/excel.link/man/xl.read.file.html
这很简单。
使用上一个答案(https://github.com/miraisolutions/xlconnect/files/794219/TestWorkbook.xlsx)中的相同测试文件。
install.packages("excel.link")
library("excel.link")
dat <- xl.read.file("TestWorkbook.xlsx", password = "pass", write.res.password="pass")
dat
(与测试文件不同,我需要的文件只有一个密码,因此我不需要最后一个参数。)
答案 2 :(得分:3)
整合之前的答案:我也想这样做,但发现 excel.link
包在最新的 R 版本中存在问题,导致 R 崩溃。
XLConnect
可能有效,但由于需要额外安装而变得复杂,否则您可能不需要这些安装。
我发现 xlsx::read.xlsx()
有一个 password
参数,在我的情况下它工作得很好。
对我来说,这是最实用的解决方案。