我正在尝试将其转换为csv的目录中有文件列表,并尝试过rio软件包和建议的here解决方案
输出是没有内容的空CSV文件的列表。可能是因为xls文件的前8行有一张图片,并且没有空的行,其中有几行充满文本的单元格。
有什么办法可以在转换前跳过所有xls文件中的前8行。
尝试探索openxlsx或readxls软件包中的选项,任何建议或指导都将有所帮助。
请不要将其标记为重复项,因为我遇到的问题与已经回答的问题不同
答案 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)