R语言操作Excel文件

举报
孙小北 发表于 2021/12/22 10:20:27 2021/12/22
【摘要】 R语言读取文本数据,今天给大家分享几种R语言读取Excel的方法,及写入Excel数据的方法。

一、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

直接使用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));
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。