将XLS转换为CSV-R(已试用Rio软件包)

时间:2018-07-10 21:14:42

标签: r csv package xls

我正在尝试将其转换为csv的目录中有文件列表,并尝试过rio软件包和建议的here解决方案

输出是没有内容的空CSV文件的列表。可能是因为xls文件的前8行有一张图片,并且没有空的行,其中有几行充满文本的单元格。

有什么办法可以在转换前跳过所有xls文件中的前8行。

Image of Input File. Couldn't add it as table since there is a picture embedded in first couple of rows of the xls files

尝试探索openxlsx或readxls软件包中的选项,任何建议或指导都将有所帮助。

请不要将其标记为重复项,因为我遇到的问题与已经回答的问题不同

2 个答案:

答案 0 :(得分:2)

以下内容可能会起作用。至少它是我自己制作的Excel文件的模型,顶部有图片

library("readxl")  # To read xlsx
library("readr")   # Fast csv write

indata <- read_excel("~/cowexcel.xlsx", skip=8)
write_csv(indata, path="cow.csv")

如果要同时运行多个文件,则将其组合为一个函数。请注意,以下功能不进行检查,并且可能会覆盖现有的csv文件

convert_excel_to_csv <- function(name) {
    indata <- read_excel(name, skip=8)    
    write_csv(indata, path=paste0(tools::file_path_sans_ext(name), ".csv"))
}

答案 1 :(得分:0)

尽管我无法使用rio进行转换,但是我使用以下代码将其读取为xls并将其写回csv。测试工作正常,希望它在实施时不会出现故障。

files <- list.files(pattern = '*.xls')    

y=NULL

for(i in files ) {
  x <- read.xlsx(i, sheetIndex = 1, header=TRUE, startRow=9)
  y= rbind(y,x)
}

dt <- Sys.Date()
fn<- paste("path/",dt,".csv",sep="")
write.csv(y,fn,row.names = FALSE)