组合不同格式的csv文件,并使用不同的工作表制作一个excel

时间:2016-06-18 07:08:51

标签: r excel export

我有四个不同格式和变量的csv文件,使用下面的代码将这4个CSV文件合并到一个excel文件中

library(rJava)
library(xlsx)
rm(list = ls())

# getting the path of all reports (they are in csv format)
files <- list.files(pattern = "\\.csv$")

# creating work book
wb <- createWorkbook()

# going through each csv file
for (item in files)
{
    # create a sheet in the workbook
    sheet <- createSheet(wb, sheetName=strsplit(item,"[.]")[[1]][1])

    # add the data to the new sheet
    addDataFrame(read.csv(item), sheet,row.names=FALSE)
}


# saving the workbook
saveWorkbook(wb, "crosstabs of data.xlsx")

在csv文件中,一个表的变量名是source / Medium但它在输出excel文件中出现为Source ... Medium, %New Sessions变量显示为X..New.Sessions 和所有变量分隔空间占用。在输出excel文件中 如何克服这个问题我需要CSV文件中的变量名称与输出Excel文件中的变量名称相同

1 个答案:

答案 0 :(得分:0)

此问题是由于read.csv更改了标头名称。如果我们使用gi/joe进行gi.joeread.csv之类的列标题将在header=T中转换。因此,需要使用以下方法再次转换标题名称:

names(df) <- gsub("\\.","/",names(df))

OR如果可以接受,只需(将标题作为数据读取):

addDataFrame(read.csv(item,header=F), sheet,row.names=FALSE)

单独注释看起来像gi/joe这样的名称不允许作为Excel工作表名称。现在验证excel end open excel中的限制并尝试命名工作表hi/5。一个人应该得到错误The sheet name contains invalid characters: : \ / ? * [ ]. [我在mac excel 15.19.1上测试这个]