从R写入excel中的模板,同时保留格式

从R写入excel中的模板,同时保留格式,excel,r,Excel,R,我在R中有一个数据框,它希望写入excel(或csv)并以良好的格式输出(例如,带有边框、表格标题,而不是从单元格A1开始) 目前,我使用函数write.table将数据帧写入csv文件,然后将数据复制并粘贴到excel中的文档中,在该文档中,我已将表格格式化为模板 当它只是一个数据帧时,这不是一个主要问题,但我现在想对多个数据帧执行此操作,并在excel中的多个选项卡中使用这些数据帧 有没有一种方法可以让我在正确设置所有格式的情况下,自动将数据框复制到现有excel电子表格中的特定单元格?正如

我在R中有一个数据框,它希望写入excel(或csv)并以良好的格式输出(例如,带有边框、表格标题,而不是从单元格A1开始)

目前,我使用函数write.table将数据帧写入csv文件,然后将数据复制并粘贴到excel中的文档中,在该文档中,我已将表格格式化为模板

当它只是一个数据帧时,这不是一个主要问题,但我现在想对多个数据帧执行此操作,并在excel中的多个选项卡中使用这些数据帧


有没有一种方法可以让我在正确设置所有格式的情况下,自动将数据框复制到现有excel电子表格中的特定单元格?

正如Joran所说,您拥有该软件包。仔细阅读该软件包的或,以确切了解可能的情况

使用XLConnect通常会覆盖单元格样式,除非使用将样式操作设置为“无”

要让您走上正确的道路,请举一个简单的例子:

require(XLConnect)
wb <- loadWorkbook("test.xlsx", create=TRUE)
setStyleAction(wb,XLC$"STYLE_ACTION.NONE")

Data <- data.frame(
  a = 1:10,
  b = letters[1:10]
)

writeWorksheet(wb,Data,"aSheet",startRow=1,startCol=1,header=TRUE)

saveWorkbook(wb)
require(XLConnect)

wb一些用户询问如何使用
xlsx
软件包实现这一点

在中有一个非常好且广泛使用的
xlsx
包示例


它有单元格格式、多页工作簿、如何添加图形等示例。

CSV文件仅为文本。不能包含任何格式。您可以使用从R@joran写入Excel文件并设置其格式。该问题包含一个重要部分:保留原始模板的格式。去试试…@JorisMeys是的,
?setStyleAction
@joran我知道(见我的答案)。但是,如果我必须对每一个可以通过滚动阅读手册的页面来回答的问题投否决票,那么剩下的问题就不多了。这是一个完全正确的问题。使用XLConnect花了一段时间,我才发现这个特性。它不在vignette中,很少有帮助页面链接到该特定信息。FWIW“xslx”包也可以做到这一点。谢谢joris,非常感谢@迪克德尔布尔特尔;我们如何在使用xlsx包时做到这一点?我没有找到任何可以保存整张工作表格式的函数?我从
R
.xlsx
文件写了很多东西,我更喜欢
openxlsx
包而不是
xlsx
。我的理由是,我总是很难让我的操作系统(64位)轻松使用
rjava
(依赖于
xlsx
openxlx
不需要
rJava
,至少在当时,rJava让我的生活变得轻松多了。openxlsx在99%的时间里工作得很好,但我使用的一些第三方程序拒绝使用openxlsx xlsx文件,并声称它们无法读取excel文档。如果我打开excel文件,然后保存并重试,它总是有效的。有人知道解决这个问题的方法吗?
require(XLConnect)
wb <- loadWorkbook("test.xlsx", create=TRUE)
setStyleAction(wb,XLC$"STYLE_ACTION.NONE")

Data <- data.frame(
  a = 1:10,
  b = letters[1:10]
)

writeWorksheet(wb,Data,"aSheet",startRow=1,startCol=1,header=TRUE)

saveWorkbook(wb)