使用格式将列值写入R中的Excel电子表格

时间:2014-06-10 20:58:25

标签: r excel xlsx mapply

我尝试使用包xlsx来读取模板的样式(格式),然后将数据从数据帧写入具有相同格式的.xlsx文件。我跟随了我能从软件包的Wiki中找到的最接近的例子。

问题在于,当我尝试从我的数据帧中写入数据时,它会以NULL形式出现,尽管我尝试编写的列的类与Wiki中的示例匹配,我的语法也是如此。

head(fer_sheet1[,1])

# [1] "HXXX3691X" "HXXX3789X" "HXXX3759X" "HXXX37350" "HXXX3722X" "HXXX3719X"

class(fer_sheet1[,1])

# [1] "character"

Final_Report_Formatted <- createWorkbook()
Contact_List <- createSheet(Final_Report_Formatted, "Contact List")
Contact_List_rows <- createRow(Contact_List, rowIndex = 1:43)
Contact_List_cells <- createCell(Contact_List_rows, 
                                 colIndex=1:length(fer_sheet1))
mapply(setCellValue, Contact_List_cells[1:43, 1], fer_sheet1[, 1])

# $`1`
# NULL
# 
# $`2`
# NULL
# 
# $`3`
# NULL

依此类推,一直到:

# $`41`
# NULL
# 
# $`42`
# NULL
# 
# $`43`
# NULL

我可以在没有包xlsx的情况下轻松完成此操作,但我们的想法是继续使用他们的包,这样我可以在用数据填充之后应用模板工作簿中的格式。

有趣的是,我还使用内置的month.name数据获取了NULL值,如示例所示:

mapply(setCellValue, Contact_List_cells[1:12, 1], month.name)  

1 个答案:

答案 0 :(得分:1)

我没有看到任何关闭/保存工作簿命令。通常这种操作就像将图形绘图写入文件......它需要一个完成功能。在这种情况下,将是:

saveWorkbook(Final_Report_Formatted, "myChosenWBName.xlsx")