使用r xlsx在excel文件中得到换行符/新行
我想在我的excel结果中得到一个新行,例如进入单元格并按下Alt + Enter
数据+代码
df <- data.frame(a="Funny\\nNot",b="rofl\nlol",c="hihi\rh3h3") xlsx::write.xlsx(df,file = "df.xlsx")
使用软件包xlsx
:
从列a
删除转义'\'
:
df <- data.frame(a="Funny\nNot",b="rofl\nlol",c="hihi\rh3h3") library(xlsx)
创build工作簿和工作表对象:
wb <- createWorkbook() sheet <- createSheet(wb, sheetName="sheet1")
添加数据框:
addDataFrame(df, sheet)
从wb / sheet获得第2行B列:
rows <- getRows(sheet, rowIndex = 2) cell_b_2 <- getCells(rows, colIndex = 2)[[1]]
创build一个在Excel中设置Wrap Text
的CellStyle
:
cs <- CellStyle(wb, alignment = Alignment(wrapText = TRUE))
将其应用于单元格:
setCellStyle(cell_b_2, cs)
保存工作簿:
saveWorkbook(wb, 'df.xlsx')
生成的工作簿如下所示:
感谢@lukeA的名字删除。
当我使用包含"\n"
单元格wrap text
。 我得到了期望的结果。
这是我使用的代码:
wb <- xlsx::loadWorkbook("df.xlsx") sheets <- xlsx::getSheets(wb) sheet <- sheets[[1]] # get specific sheet rows <- xlsx::getRows(sheet) # get rows cells <- xlsx::getCells(rows) # get cells values <- lapply(cells, xlsx::getCellValue) # extract the cell values wrapStyle <- xlsx::CellStyle(wb) + xlsx::Alignment(horizontal=NULL, vertical=NULL, wrapText=T, rotation=0, indent=0) lapply(names(cells),function(c)if(values[[c]] %>% grepl("\\n",.))xlsx::setCellStyle(cells[[c]],wrapStyle)) xlsx::saveWorkbook(wb,"dfWrap.xlsx")