使用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 TextCellStyle

 cs <- CellStyle(wb, alignment = Alignment(wrapText = TRUE)) 

将其应用于单元格:

 setCellStyle(cell_b_2, cs) 

保存工作簿:

 saveWorkbook(wb, 'df.xlsx') 

生成的工作簿如下所示:

Excel的输出

感谢@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")