如何将一个有密码保护的excel文件读入r?

xienkqul  于 2023-03-13  发布在  其他
关注(0)|答案(5)|浏览(557)

如何将一个有密码保护的excel文件读入r?
我试过excel.link,但它不适用于R版本3.2.3(我的版本)
我也尝试过RDCOMClient,但它也不适用于R版本3.2.3

6jjcrrmo

6jjcrrmo1#

我刚刚使用了excel.link包中的xl.read.file
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

(The我需要的一个文件只有一个密码,这与测试文件不同,因此我不需要最后一个参数。)

zf9nrax1

zf9nrax12#

XLConnect(0.2-13)现在可以读取密码保护的excel文件
安装最新版本的XLConnect和XLConnectJars(0.2-13)

install.packages("XLConnect")

安装无限强度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)

使用test file

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
gdx19jrr

gdx19jrr3#

综合前面的答案:我也想这样做,发现excel.link包在今天的最新R版本中有问题,使R崩溃。XLConnect可能会工作,但它会因为需要额外安装而变得复杂,否则可能对您来说是不必要的。
我发现xlsx::read.xlsx()有一个password参数,它在我的情况下工作得很好。对我来说,这是最实用的解决方案。

pxy2qtax

pxy2qtax4#

根据Chris Andrew的回答,为了避免在代码中写入密码,还可以添加askForPassword函数,这样在运行代码时会给予一个窗口,要求您输入密码。

install.packages("excel.link")
install.packages("rstudioapi")

library("excel.link")

pw_message <- "Input password for excel sheet."

dat <- xl.read.file("TestWorkbook.xlsx", password = rstudioapi::askForPassword(pw_message))

dat
pdsfdshx

pdsfdshx5#

我知道这是一个较老的线程,但我想我会在这里添加它,以防它有用。
我一直在将一个Excel文件读入一个Shiny应用程序,发现就我的目的而言,xlsx::read.xlsx()远比excel.link::xl.read.file()慢。
但是,使用excel.link时,我注意到关闭应用程序不会关闭关联的Excel进程,而xlsx会关闭。
使用excel.link时,必须包含system("TASKKILL /F /IM EXCEL.exe"),以强制Excel在读取文件后退出。

相关问题