R语言操作Excel文件

网友投稿 1281 2022-05-29

一、R语言读取Excel数据

(1)使用剪贴板的读取excel

首先将Excel数据复制到剪贴板,然后读取剪贴板数据,是可行的,但总觉得不是好办法

data = read.table("clipboard", header=TRUE, sep="\t") data

(2)XLConnect程序包(推荐)

使用XLConnect的包直接读取excel文件,就是这个包依赖于XLConnectJars包,比较大(15.7M)

install.packages("XLConnect") #安装XLConnect程序包,仅需要安装一次 library("XLConnect") data= readWorksheetFromFile("D:/workspace/data.xls", sheet=1, header=TRUE) data

可能出现错误:

载入需要的程辑包:XLConnectJars

Error : loadNamespace()里算'rJava'时.onLoad失败了,详细内容:

调用: fun(libname, pkgname)

错误: JAVA_HOME cannot be determined from the Registry

In addition: Warning messages:

1: 程辑包‘XLConnect’是用R版本3.3.3 来建造的

2: 程辑包‘XLConnectJars’是用R版本3.3.3 来建造的

Error: 无法载入程辑包‘XLConnectJars’

解决方法;安装JDK,XLConnect程序包依赖于Java环境

(3)RODBC读取Excel(本方法失败)

ODBC数据源里面找不到excel的驱动程序,原因是office是32为版本,安装的驱动程序无法在64位的win7上使用。运行c:\windows\sysWOW64\odbcad32.exe后,可以配置32为的ODBC数据源。

conn = odbcConnect("contacts")

Warning messages:

1: In odbcDriverConnect("DSN=contacts") :

[RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

2: In odbcDriverConnect("DSN=contacts") : ODBC connection failed

使用odbcConnectExcel方法,不支持64位的windows,错误如下:

odbcConnectExcel("D:/workspace/data.xls")

Error in odbcConnectExcel("c:/r-workspace/contacts.xls") :

odbcConnectExcel is only usable with 32-bit Windows

二、R语言写数据到Excel

R语言操作Excel文件

直接使用XLConnect程序包进行数据的写入。

(1)写入所有数据

InsertDataSIR<-function(Dir,SIR,webName) { #1.加载程序包 #install.packages("XLConnect") library(XLConnect); #加载读取Excel程序包 #读取或创建一个XLSX文件,建立连接 xls<-loadWorkbook(Dir,create=TRUE) #创建工作表 createSheet(xls,name=webName) #写入数据 从左上角开始 writeWorksheet(xls,SIR,webName,startRow = 1,startCol=1,header = FALSE) #保存文档,此时才会创建 saveWorkbook(xls) }

(2)按行写入数据

InsertDataSIRByRow<-function(Dir,rSIR,webName,row) { #1.加载程序包 #install.packages("XLConnect") library(XLConnect); #加载读取Excel程序包 #读取或创建一个XLSX文件,建立连接 xls<-loadWorkbook(Dir,create=TRUE) #创建工作表 createSheet(xls,name=webName) #写入数据 从左上角开始 writeWorksheet(xls,rSIR,webName,startRow = row,startCol=1,header = FALSE) #保存文档,此时才会创建 saveWorkbook(xls); print(paste("插入SIR数据",as.character(row),webName)); }

Windows

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MongoDB 数据库条件查询技巧
下一篇:P40-前端基础-BFC解决浮动带来的高度塌陷问题
相关文章