精华内容
下载资源
问答
  • R语言读取excel文件

    千次阅读 2020-02-17 14:47:22
    R语言有很多package可以读取excel文件。我们今天先介绍其中的一种。 xlsx xlsx是R语言读和写excel文件的一个包。允许读取excel的一个sheet为data.frame对象,并且把一个data.frame对象写回文件。 底层实现,xlsx使用...

    R语言有很多package可以读取excel文件。

    xlsx

    xlsx是R语言读和写excel文件的一个包。允许读取excel的一个sheet为data.frame对象,并且把一个data.frame对象写回文件。
    底层实现,xlsx使用apache的一个java库来实现的。详细信息可以看这里http://poi.apache.org/index.html。
    可以在R GUI里面help查看package的详细信息:
    help(package="xlsx")

    简单读取excel的例子:

    library(xlsx)
    dF <- read.xlsx('data.xlsx', sheetIndex=1)
    dF
    

    读取结果:

       name age grade
    1  Lily  23    78
    2  Jack  24    86
    3   Bob  25    89
    4 Henry  22    90
    5 David  23    76
    

    读取函数read.xlsx的参数

    read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL,
      startRow=NULL, endRow=NULL, colIndex=NULL,
      as.data.frame=TRUE, header=TRUE, colClasses=NA,
      keepFormulas=FALSE, encoding="unknown", password=NULL, ...)
    

    设定rowIndex。

    > dF <- read.xlsx('data.xlsx', sheetIndex=1, rowIndex=c(1,2,3))
    > dF
      name age grade
    1 Lily  23    78
    2 Jack  24    86
    > dF <- read.xlsx('data.xlsx', sheetIndex=1, rowIndex=c(3,5))
    > dF
       Jack X24 X86
    1 Henry  22  90
    

    函数read.xlsx2read.xlsx相比,对于大型的excel,有很大的性能提升。在函数的help文档里面给的大型参考量是,100,000+的单元格。

    xlsx的内存问题

    xlsx是基于Java的,所以会有内存大小限制。数据文件过大,会有OutOfMemoryError的错误。这个问题一般有两个解决办法,一个是调整Java的参数。

    options(java.parameters = "-Xmx2048m")
    

    一个是用另外的package来读取文件。大部分使用openxlsx包。我们接下来介绍一下这个包。

    openxlsx

    help(package="openxlsx")查看包的help文档。openxlsx是一个可以读,写,编辑xlsx的包。它依赖于Rcpp包,但是没有Java的依赖。

    这个是它read.xlsx的参数。

    read.xlsx(
      xlsxFile,
      sheet = 1,
      startRow = 1,
      colNames = TRUE,
      rowNames = FALSE,
      detectDates = FALSE,
      skipEmptyRows = TRUE,
      skipEmptyCols = TRUE,
      rows = NULL,
      cols = NULL,
      check.names = FALSE,
      sep.names = ".",
      namedRegion = NULL,
      na.strings = "NA",
      fillMergedCells = FALSE
    )
    

    这个是简单读取的R script和结果。

    > library(openxlsx)
    > df <- read.xlsx("data.xlsx",sheet=1)
    > df
      name age grade
    1 Lily  23    78
    2 Jack  24    86
    3  Bob  25    89
    
    展开全文
  • Python语言打开Excel文件?一、安装xlrd模到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境。二、使用介1、导入模块import xlrd2、打Excel文件读取数据data = xlrd.open_workbook('...

    Python语言打开Excel文件?

    一、安装xlrd模

    到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境。

    二、使用介

    1、导入模块

    import xlrd

    2、打Excel文件读取数据

    data = xlrd.open_workbook('excelFile.xls')

    Python语言怎么打开Excel文件?

    一、安装xlrd模块

    到python官网下载http://pypi.python.org/pypi/xlrd模装,前已经安装了python 环境。

    二、使用介

    1、导入模块

    import xlrd

    2开Excel文件读取数据

    data = xlrd.open_workbook('excelFile.xls')

    python如果读取一个excel文件,将指定的一列存放在新的excel中

    pandas比较方实现。

    import pandas as pd

    df=pd.read_excel(r'e:/aaaaa.xlsx',usecols=[2])

    df.to_excel(r'e:/aaaaa1.xlsx',index=False)

    用python做一个登录程序通过后直接进入某个excel?

    是要做python自动化办公吧,这个很不错的,让办公很方便快捷的

    怎么用python打开带密码的excel

    用excel打开,删掉密码,保存,然后再用numbers打开(当然,你必须知道密码)

    python读取excel文件如何进行

    python编程语言着比较强大的excel读写能力,我们要安装xlrd,xlwt这两个库就可以了。那么pythonexcel文件如何,今天就为大家分享下python读取excel文件的具体操作方法,快来了解下吧!

    python读取excel的问题

    你试这。将

    jp.write(buf[i].decode('utf-8'))

    改成

    jp.write(unicode(buf[i]).encode('utf-8'))

    python2有自动编码转换的功能。type(buf[i])如果是unicode,你还decode,那么它会自动ascii进行encode,变成str型后,再decode('utf-8')。所以就会出现你上面的那个错误,汉字是不能encode成ascii的。

    也许刚才的答案是错误的。

    你还可以试试

    jp.write(buf[i])

    另外说明一下。写到socket或者是文件里,必须是string类型。不能是unicode。

    这在python2和python3里是一样的。

    展开全文
  • R语言导入excel文件

    2017-02-02 23:53:04
    问题描述:install.packages("xlsx")安装后 输入 library(xlsx)无法调用...JAVA环境变量未设置问题解决:输入命令:Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.7.0_60\\jre")即可解决,重新打开R即可调用

    问题描述:

    install.packages("xlsx")

    安装后
    输入

     library(xlsx)

    无法调用

    问题分析:
    JAVA环境变量未设置

    问题解决:

    输入命令:Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.7.0_60\\jre")即可解决,重新打开R即可调用

    显示路径

    getwd()

    将xlsx文件存入该路径
    然后导入

    read.xlsx("1.xlsx",sheetName="11",header=T)
    展开全文
  • R语言读取Excel文件

    万次阅读 多人点赞 2015-11-25 13:34:44
    因为一个项目需要,原始数据全部是Excel文件,包括.xls和.xlsx格式,并且很多excel数据的格式并不规范,一个个转为csv格式不太现实,所以把所有能了解到的读取excel的方法都试了一遍,做个简单汇总。 相关的包:...

    因为一个项目需要,原始数据全部是Excel文件,包括.xls和.xlsx格式,并且很多excel数据的格式并不规范,一个个转为csv格式不太现实,所以把所有能了解到的读取excel的方法都试了一遍,做个简单汇总。

    相关的包:RODBC、xlsx、openxlsx、gdata、readxl,测试平台win7。

    RODBC包-相关方法

    RODBC-odbcConnectExcel2007()、odbcConnectExcel()、sqlFech()、sqlTables()

    安装

    install.packages(“RODBC”, dependencies=TRUE) #可能需要安装一些依赖包

    使用方法

    #64位机下,.xls和.xlsx文件用相同方法
    library(RODBC)
    con <- odbcConnectExcel2007("D:/R/RODBC.xlsx") #64位机下方法
    sqlTables(con) #查看该xlsx文件中有哪些表
    #           TABLE_CAT TABLE_SCHEM TABLE_NAME   TABLE_TYPE REMARKS
    # 1 D:\\R\\RODBC.xlsx        <NA>  商品信息$ SYSTEM TABLE    <NA>
    # 2 D:\\R\\RODBC.xlsx        <NA>  补充说明$ SYSTEM TABLE    <NA>
    # 3 D:\\R\\RODBC.xlsx        <NA>  销售信息$ SYSTEM TABLE    <NA>
    table_test <- sqlFetch(con,"销售信息")
    table_test
    odbcClose(con)

    #32位机下,.xls和.xlsx文件主要在方法odbcConnectExcel2007()和odbcConnectExcel()的差异,其余方法相同
    con <- odbcConnectExcel ("D:/R/RODBC.xlsx") #
    sqlTables(con) #查看该xlsx文件中有哪些表
    table_test <- sqlFetch(con,"销售信息")
    odbcClose(con)

    优缺点说明

    RODBC主要是读取数据库的包,是我接触到的读取Excel中效率最高的。并且还有sqlQuery方法可以写SQL灵活读取数据。并且能够同时读取.xls和.xlsx文件。.

    在简单比较了各种方法后,觉得RODBC真是神器,并且没有各种乱七八糟的限制,于是欢快地选择了它,事实证明它的确是又快又爽,可是也隐藏了许多潜在的坑爹特性,不深入了解根本没办法发现。如果你有幸看到,说不定可以提前绕过某些坑,或者无法绕过,只能另择新欢。

    坑No1.

    必须通过Sheet名读取表,一个Excel文件里面可能有多个sheet表,所以你要读取其中某张表,或者所有表,必须提前知道每张表的表名。如下图中的”销售信息”、”商品信息”、”补充说明”。此坑影响不大,并且用sqlTables可以查到表名,可以解决这个问题。

    #在表结构相同的情况下,读取所有的表内容
    con <- odbcConnectExcel2007("D:/R/RODBC.xlsx") #64位机下方法
    tbls <- sqlTables(con)
    table_test <- sqlFetch(con, tbls$TABLE_NAME[3])
    odbcClose(con)

    坑No2.

    当某一列有不同类型的数值时,就悲剧了,如下例子中,用RODBC读入不能指定读入数据的格式,所以按照Excel默认格式读取数据时,就会出现一列中类型不统一的值为NA。此坑用RODBC无解,只能另择其他。

    如下,测试数据中,区域项目是字符,其余字段为数值或日期。下图左边是excel文件中的内容,右边是读入结果。

    library(RODBC)
    con <- odbcConnectExcel2007("D:/R/RODBC.xlsx") #64位机下方法
    table_test3 <- sqlFetch(con,"补充说明")
    table_test3
    odbcClose(con)


    坑No3.

    这也是一个不用不知道的坑,RODBC读取Excel文件在数据列较多时,多出的列可能被忽略,RODBC读取极限是255列(没有找到官方的说明,只是我的测试结果)。此坑用RODBC同样无解,只能另择其他。

    如下,使用测试数据有380行280列,RODBC读入后,是380行255列。

    library(RODBC)
    con <- odbcConnectExcel2007("D:/R/RODBC.xlsx") #64位机下方法
    table_test2 <- sqlFetch(con,"商品信息")
    odbcClose(con)

    xlsx包-相关方法

    xlsx-read.xlsx()、read.xlsx2()

    安装

    install.packages(“xlsx”) #需要已经安装rJava包

    使用方法

    library(xlsx)
    table_test <- read.xlsx("D:/R/xlsx.xlsx",1, encoding="UTF-8")
    table_test1 <- read.xlsx("D:/R/xlsx.xls",1, encoding="UTF-8")
    table_test2 <- read.xlsx2("D:/R/xlsx.xlsx",1, test="UTF-8") #默认读入列为character,可自定义新的列。

    优缺点说明

    优点很明显,上面的例子很完美解决了上面RODBC的坑No2.,同时可以读取.xls文件。此外,xlsx还有write.xlsx()系列方法,读写兼具,有需要的可以查看说明文档。
    坑No1.
    缺点也非常明显,就是效率极低,读取数据时间长并且稍大的数据集就可能出现内存不够用的问题。下面的例子就是用RODBC和xlsx的方法分别读取同一个excel文件所用时间,RODBC的优势很明显,测试数据1340行3列。

    library(RODBC)
    con <- odbcConnectExcel2007("D:/R/ceshi.xlsx")
    system.time(table_test <- sqlFetch(con,"Sheet1"))
    odbcClose(con)
    library(xlsx)
    system.time(table_test <- read.xlsx("D:/R/ceshi.xlsx",1, encoding="UTF-8"))

    坑No2.

    容易出现内存不够用的问题。用xlsx的方法读取前面用到测试RODBC的数据表,结果,错误信息就是OutOfMemory。

    openxlsx包-主要方法

    openxlsx-read.xlsx()

    安装

    install.packages("openxlsx")

    使用方法

    library(openxlsx)
    table_test <- read.xlsx("D:/R/xlsx.xlsx",1)
    table_test1 <- read.xlsx("D:/R/xlsx.xls",1)


    优缺点说明

    优点与xlsx包中的方法一样,不会出现RODBC的坑No2.的问题。此外,读取ceshi.xlsx所花费时间比RODBC稍长,但相比xlsx快了许多。并且同样有write.xlsx()方法,读写兼具。

    system.time(table_test <- read.xlsx("D:/R/ceshi.xlsx",1))

    坑No1.

    缺点很大的一个,见上面的使用方法,不能读取.xls文件。

    gdata包-相关方法

    gdata-read.xls()

    安装

    install.packages("gdata")  #电脑已安装Perl

    使用方法

    library(gdata)
    table_test <- read.xls("D:/R/xlsx.xlsx",1, fileEncoding="UTF-8",sep=",") #xlsx文件
    table_test1 <- read.xls("D:/R/xlsx.xls",1, fileEncoding="UTF-8",sep=",") #xls文件

    优缺点说明

    优点同样,不会有RODBC的两个问题。效率用同样的ceshi.xlsx文件来做测试,可以看到花费时间优于xlsx。同时可以读取.xlsx和.xls文件。

    system.time(table_test <- read.xls("D:/R/ceshi.xlsx",1, fileEncoding="UTF-8",sep=","))

    坑No1.

    gdata是基于Perl的,所以存在因为Perl而可能出现的问题。读取中文字符时,可能会出现“Wide character in print”的提醒信息。这是由于perl只能处理两种编码:ascii码和utf-8。ascii码是很少的,像中文、日文、韩文等字符要想能被perl处理,只能用 utf-8编码方式。

    下面就是我在读取某个Excel文件时,输出的log文件。log文件里面基本上全部是这样的提醒。

    readxl包-相关方法

    readxl-read_excel()

    安装

    install.packages("readxl")

    使用方法

    library(readxl)
    table_test <- read_excel ("D:/R/xlsx.xlsx",1, col_types =c("text","text")) #xlsx文件
    table_test1 <- read_excel ("D:/R/xlsx.xls",1, col_types = c("text","text")) #xls文件

    优缺点说明

    优点同样不存在RODBC的坑No1.和坑No2.,读取效率利用ceshi.xlsx文件测试,读取比RODBC更高效。

    system.time(table_test <- read_excel("D:/R/xlsx.xlsx",1))

    坑No1.

    见使用方法,不能读取.xls文件。


    最后对同一个文件,使用这五个包中的相关方法,对读取结果做一个对比。可以看看这些包在效率和对Excel中一些特殊的数据格式的读取结果。

    #gdata
    library(gdata)
    system.time(table_test <- gdata::read.xls("D:/R/ceshi.xlsx",2, fileEncoding="UTF-8",sep=","))
    #RODBC
    library(RODBC)
    con <- odbcConnectExcel2007("D:/R/ceshi.xlsx") #64位机下方法
    tbls <- sqlTables(con)
    system.time(table_test1 <- sqlFetch(con, tbls$TABLE_NAME[2]))
    odbcClose(con)
    #xlsx
    library(xlsx)
    system.time(table_test2 <- xlsx::read.xlsx("D:/R/ceshi.xlsx",2,encoding="UTF-8"))
    #openxlsx
    library(openxlsx)
    system.time(table_test3 <- openxlsx::read.xlsx("D:/R/ceshi.xlsx",2))
    #readxl
    library(readxl)
    system.time(table_tes4 <- read_excel("D:/R/ceshi.xlsx",2)) 

    原始数据表


    gdata读入结果


    RODBC读入结果


    xlsx读入结果


    openxl读入结果


    readxl读入结果


    可以说没有完美的方法。

    综上,对Excel数据分析的基本原则:

    1.      能转化成csv格式,请尽量这样做,这个才是最高效的选择。

    2.      1无法达到的情况下,小数据量,并且数据格式比较统一的情况下优先选择RODBC。

    3.      非.xls文件时,优先选择readxl、openxlsx。

    4.      同时需要读写操作,xlsx(效率较低,对内存要求高)或者openxlsx。


    有任何问题或建议,欢迎指出。

    转载请说明出处,谢谢。

    展开全文
  • R语言 Excel文件

    2018-04-16 13:08:12
    Microsoft Excel是最广泛使用的电子表格程序,以.xls或.xlsx... R语言也可以使用这个包写入excel文件。 安装xlsx软件包 您可以在R控制台中使用以下命令来安装“xlsx”软件包。 它可能会要求安装一些额外的软件包...
  • 作者:Economicoder 微信公众号:数据学徒 本文以2000年度工业企业数据库为例,该Excel表格包含约16万...破大巴需要攻城锤,R语言挺身而出,敲开大型Excel文件之门。 library(openxlsx) library(foreign) x = read.
  • R语言包gdata读取excel文件

    万次阅读 2016-09-16 20:03:20
    本次分享来源于自己学习时收集资料的总结EXCEL文件的格式有xls、xlsx这两种,这里我们采用R包是gdata的read.xls函数提示:read.xls函数对xls支持EXCEL97-2004版,对xlsx支持EXCEL2007+。现在我们常用的版本是2007...
  • R语言读取excel文件的代码

    千次阅读 2014-06-10 14:12:42
    有时候会遇见Excel文件,使用R语言读取略显麻烦
  • R语言读取Excel文件的一系列陷阱

    千次阅读 2018-08-15 00:17:04
    你想用R读取一个Excel文件,你觉得这事没啥难的,就像所有的文件读取,只需要知道文件名就万事大吉了。 于是,你把1.xls放到读取.R的文件夹下面,重命名为1.csv,打开rstudio,执行下面这条语句 a &lt;- read....
  • R语言读取EXCEL文件的各种方法

    千次阅读 2014-07-10 11:37:54
    最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径:  假定在您的电脑有一个excel文件,...
  • R语言心得说:R语言之xlsx包读写Excel数据

    万次阅读 多人点赞 2019-06-14 17:24:31
    R语言心得说:R语言之xlsx包读写Excel数据 【基础】简单读取excel文件数据read.xlsx 【基础】简单写入数据到excel文件write.xlsx 【进阶】随心所欲读取excel中的各种信息createWorkbook、getSheet 【进阶】...
  • R语言读取Excel文件并导入

    万次阅读 2018-03-20 17:32:12
    之后读取一个Excel文件: read.xlsx2(file="E:\\test.xlsx",sheetIndex=1) 其中的E:\\test.xlsx为目标文件的地址 接着,将文件读取出来并赋值给Mydata: Mydata&lt;-read.xlsx2(file="E:...
  • R语言读取excel文件 xlsx格式

    千次阅读 2019-09-10 18:57:37
    实际上以前R有个读取xlsx的,但是需要安装java。非常麻烦 现在使用readxl这个包就可以了 如果希望可以写入xlsx,可以使用writexl包
  • #获取excel中工作簿的名称 sheetnames&lt;-getSheetNames('test.xlsx') #把每个工作薄的数据按照'工作薄名称.csv'的名称存储 for(i in (1:length(sheetnames))){ write.table(read.xlsx('F:/test.xlsx...
  • R语言】R读取含中文excel文件,read.xlsx乱码问题

    万次阅读 多人点赞 2017-02-22 16:36:42
    R读取含中文的Excel文件出现乱码
  • write.table保存的文档excel打开,列名前已一列,最后一列数据没有列名,请问是哪个参数设置错了吗?谢谢!
  • 文件夹下批处理excel-R语言

    千次阅读 2016-09-21 23:11:57
    R语言处理excel文件
  • R语言保存EXCEL小技巧

    2021-04-03 22:05:02
    R语言中保存excel的方法 文章目录前言一、小tip 前言 创建名为df的数据框 一、小tip
  • R语言之读取Excel及csv数据

    万次阅读 多人点赞 2017-04-24 16:22:35
    R语言读取数据的几种方法,用read.table(),read.xlsx()读取Excel,csv数据
  • r语言有关excel的包Co-authoring enables you and your colleagues to work on the same Excel workbook simultaneously. Everyone sees all changes in real-time, and across all devices that run Excel for ...
  • 分享的目的在于让有需要的人知道还有这么个东西可以用因为在学校机关部门工作经常需要汇总各学院数据几十个Excel表需要汇总成一个靠复制粘贴估计会慢到怀疑人生因为我太懒所以查了下边分享的这个多个Excel文件快速...
  • 在一个大的目录下有很多子目录,每个子目录里有很多excel文件R语言读取 setwd('C:/Users/test/Desktop/20200331 data') file.list <- list.files(pattern='*.xls', recursive = T)# recursive=T读取所有
  • 最终我利用R语言完成了这个小需求,本着总结学习的想法,在此处将多余逻辑删除,抽离出了最基本的Excel转存Mysql的功能,这样也可以算一个小轮子了。(仅做学习用,Navicat等工具可以直接导入Excel) 本项目已开源至...
  • R语言excel导入数据,由于内容有excel的换行符导致列数不一致的问题问题描述解决办法1. 在excel中先通过trim和clean函数进行预处理2. 读入数据简单的方法是,将清理后的数据复制粘贴到文本编辑器,保存为txt,...
  • Excel的包:readxl 读word的包:docxtractr doxctractr能够对Word中的表格进行提取,提取的格式是一个列表。通过对这个列表的操作,能够获知一个doc/docx文件中的表格数量,提取表格中的内容。 常用函数: read_...
  • Excel(Microsoft office)是现在最常用的办公软件,主要涉及电子表格制作、数据处理、报表输出展示以及更高端的还有金融建模等;我们知道,在需要批处理多个Excel工作表以及工作簿的时候,需要用到一个自动化的利器:...
  • 首先尝试的是RODBC,不过过程相当不顺利 我电脑上安装的是office 2003,ODBC数据源里面找不到excel的驱动程序 原因是office是32为版本,安装的驱动程序无法在64位的win7上使用。 运行c:\windows\sysWOW64\odbcad3 …...
  • R语言:读取excel的perl问题

    千次阅读 2016-11-01 20:22:37
    刚给朋友实验读取excel文件出错了,我的电脑却没有问题。报的错误是:Error in findPerl(verbose = verbose) : perl executable not found. Use perl= argument to specify the correct path. Error in file.exists...
  • install.packages("readxl")将程序包安装入‘C:/Users/lenovo-pc/Documents/R/win-library/3.4’(因为‘lib’没有被指定)--- 在此連線階段时请选用CRAN的鏡子---还安装相依关系‘rematch’,‘cellranger’试开URL’...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,571
精华内容 4,628
关键字:

r语言打开excel文件