SGa*_*arg 3 r dataframe openxlsx
我正在尝试将 R 中的数据框输出到 excel 中,但是在尝试打开生成的 xlsx 文件时使用 mergeCells() 时,我不断收到错误消息。虽然单元格确实合并了,但我的数据“丢失了”。我可以取消合并单元格,数据就在那里,但我想格式化它,以便输出(例如我的 df 的第 1 列)跨越多列。
我尝试在将数据写入工作表之前和之后合并单元格。我也试过使用 writeDataTable() 和 writeData(),两者都不起作用。我尝试在不同的列上启动 df(如下所示)。例如,开始将 df 写入第 2 列,并按 1:2 合并列。另一个我首先合并列 1:2,然后从第 1 列开始写入数据。
df <- data.frame(
Category = c("A", "B", "C"),
Type = c("x", "y", "z"),
Number = c("1", "2", "3"), stringsAsFactors = FALSE)
book <- createWorkbook()
sheet <- "Sheet1"
writeData(book, sheet, df, startCol = 2, startRow = 1, colNames = TRUE)
mergeCells(book, sheet, cols = 1:2, rows = 1)
mergeCells(book, sheet, cols = 1:2, rows = 2)
mergeCells(book, sheet, cols = 1:2, rows = 3)
saveWorkbook(book)
Run Code Online (Sandbox Code Playgroud)
或者
mergeCells(book, sheet, cols = 1:2, rows = 1)
mergeCells(book, sheet, cols = 1:2, rows = 2)
mergeCells(book, sheet, cols = 1:2, rows = 3)
writeDataTable(book, sheet, df, startCol = 1, startRow = 1, colNames = TRUE)
saveWorkbook(book)
Run Code Online (Sandbox Code Playgroud)
保存后打开文件时,错误是“我们发现某些内容存在问题等。Excel 能够通过删除或修复不可读的内容来打开文件。”
任何帮助表示赞赏!
如果我正确理解您的问题,您希望合并第 1 列和第 2 列以生成第一列df. 如果这是正确的,那么您的问题是您要合并的最左边的列(第 1 列)是空白的。openxlsx::mergeCells()然后将合并最左侧列的内容。要合并第 1 列和第 2 列并df[1]在其中包含 的内容,您需要将 的内容写在df[1]最左侧的列中,如下所示:
library(openxlsx)
df <- data.frame(
Category = c("A", "B", "C"),
Type = c("x", "y", "z"),
Number = c("1", "2", "3"), stringsAsFactors = FALSE)
wb <- createWorkbook() # creates workbook
addWorksheet(wb, "Sheet1") # adds sheet
writeData(wb, 1, df[1], startCol = 1, startRow = 1, colNames = TRUE) # writing content on the left-most column to be merged
writeData(wb, 1, df[2:3], startCol = 3, startRow = 1, colNames = TRUE) # write the rest of the content on the columns that wont be merged
for(i in seq_len(nrow(df) + 1)){ # loop over rows for merging
mergeCells(wb, 1, cols = 1:2, rows = i)
}
rm(i)
saveWorkbook(wb, "test.xlsx", overwrite = T) # save workbook
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |