R语言循环读取excel并保存为RData
2017-07-06 14:01
183 查看
之前写过一个循环读取excel的代码,最近又有了新的需求:循环读取xlsx文件中的多个sheet,处理完之后循环输出到xlsx文件中的多个sheet中,总结一下。
有了这段代码,要循环读取xlsx里面的多个sheet就简单多了,毕竟xlsx的文件名都是一致的,只是sheetIndex不一样:
下面这面这段代码是抄来的,还没来得及尝试能不能循环写入sheet了。
今天尝试了第3部分的代码,发现循环写入的功能无法实现,于是使用openxlsx包解决该问题。
但在最后保存时报错,因为是在windows环境下,保存时提示安装Rtools,windows系统下安装完成后,需要添加系统变量D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin,添加完成后,重启电脑,发现保存成功。
下面,需要循环将多个sheet写入xlsx文件中:
1、循环读取csv文件并输出为RData格式
homedir <- "D:/Documents/tina/Database" #设置路径 setwd(homedir) temp = list.files(pattern="*.csv") for (i in 1:length(temp)) { filename <- substr(temp[i], 1, nchar(temp[i])-4); assign(filename, read.csv(temp[i], header = T)); save(list = filename, file = paste(filename, ".Rdata", sep = "")) }
有了这段代码,要循环读取xlsx里面的多个sheet就简单多了,毕竟xlsx的文件名都是一致的,只是sheetIndex不一样:
2、循环读取xlsx文件中的多个sheet:
library(xlsx) sheet.index <- c(1:12) data.list <- list() for(i in sheet.index){ filename <- paste0("month",i) data.list[[i]] <- read.xlsx("E:/某某中心年收入.xls", encoding = "UTF-8", sheetIndex = i) assign(filename, data.list[[i]]) }
下面这面这段代码是抄来的,还没来得及尝试能不能循环写入sheet了。
3、循环创建xlsx中的多个sheet
library(XLConnect) wb <- loadWorkbook('data.xlsx', create = TRUE) # 创建excel工作簿 # 创建sheet for (name in paste0('sheet', 1:3)) { createSheet(wb, name) } # 分别向3个sheet写入数据 writeWorksheet(wb, data_frame_1, 'sheet1') writeWorksheet(wb, data_frame_2, 'sheet2') writeWorksheet(wb, data_frame_3, 'sheet3') saveWorkbook(wb) 作者:匿名用户 链接:https://www.zhihu.com/question/50105110/answer/119472211 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
今天尝试了第3部分的代码,发现循环写入的功能无法实现,于是使用openxlsx包解决该问题。
4、创建xlsx,写入多个sheet
首先按照网上的教程安装了openxlsx,并进行了实验:library(openxlsx) wb <- createWorkbook() addWorksheet(wb, "Sheet 1") c1 <- createComment(comment = "this is comment") writeComment(wb, 1, col = "B", row = 10, comment = c1) s1 <- createStyle(fontSize = 12, fontColour = "red", textDecoration = c("BOLD")) s2 <- createStyle(fontSize = 9, fontColour = "black") c2 <- createComment(comment = c("This Part Bold red\n\n", "This part black"), style = c(s1, s2)) c2 writeComment(wb, 1, col = 6 , row = 3, comment = c2) addWorksheet(wb, "Sheet 1") saveWorkbook(wb, file = "E:/信和资料/项目/门店绩效/湖南益阳/writeCommentExample.xlsx", overwrite = TRUE)
但在最后保存时报错,因为是在windows环境下,保存时提示安装Rtools,windows系统下安装完成后,需要添加系统变量D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin,添加完成后,重启电脑,发现保存成功。
下面,需要循环将多个sheet写入xlsx文件中:
wb <- createWorkbook() addWorksheet(wb,"xsjshouru12") addWorksheet(wb, "xsjshouru18") addWorksheet(wb, "xsjshouru24") addWorksheet(wb, "xsjshouru36") writeData(wb,"xsjshouru12",xsjshouru12) writeData(wb,"xsjshouru18",xsjshouru18) writeData(wb,"xsjshouru24",xsjshouru24) writeData(wb,"xsjshouru36",xsjshouru36) #保存到本地文件 saveWorkbook(wb,file = "E:/信和资料/项目/门店绩效/湖南益阳/薪水借.xlsx", overwrite = TRUE)
相关文章推荐
- 将 Excel 2007 读取到 Byte[], 然后再保存到新的Excel文件中, 这时打开新文件会出错.
- R语言读取数据、拆分数据,并保存到相应文件夹
- [Flex] as3xls读取excel,修改保存单表(一)
- R语言实现Excel数据的读取操作
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- 解析特定Excel文件并进行数据读取和保存
- java 读取并保存excel中的图片
- C# 读取Excel文件 并保存为html文件
- C#中创建、打开、读取、写入、保存Excel的一般性代码
- 用python读取json格式内容并保存到excel中
- C#读取excel并保存到Oracle数据库
- C#呼叫COM方式读取Excel资料并保存为DataSet
- C#中创建、打开、读取、写入、保存Excel的一般性代码
- 微擎php上传excel并且读取数据;保存到数据库
- PHPExcel读取EXCEL中的图片并保存到本地的方法
- Asp.net 从Excel读取图片并保存,无法从内存读取图片,Excel组件和相关IIS的配置及解决办法
- android 读取excel数据并保存为xml文件
- python 读取txt中每行数据,并且保存到excel中
- 在Java中读取并保存EXCEL文件中图片
- poi 读取excel(xlsx) 并保存到xml