gpt4 book ai didi

r - 如何使用 R 和 XLConnect 保存 XLSX 电子表格而不在单元格中换行?

转载 作者:行者123 更新时间:2023-12-04 21:04:10 37 4
gpt4 key购买 nike

R 中的 XLConnect 库允许读取和写入 Microsoft Excel XLSX 电子表格文件。

但是,当使用 writeWorksheet() 或 writeWorksheetToFile() 时,它会自动将所有单元格中的文本换行。 如何关闭文字环绕?
理想情况下,我正在寻找生成没有换行文本和每列最佳宽度的 XLSX 电子表格。

谢谢!

最佳答案

这是一个基于 XLConnec 的函数t 将 .xlsx 文件保存到磁盘而不进行文本换行。最后,样式选择之一是自动调整大小。我怀疑还有其他选择,可以显式或隐式地停止文本换行。

save.xls <- function(df, filename, sheetname="Sheet", create=TRUE, rownames=NULL, startRow=1, zebra=F) {
require(XLConnect)
require(stringr)

if (is.matrix(df)) df <- as.data.frame(df)

if (!str_detect(filename, "\\.xlsx$")) filename <- str_c(filename, ".xlsx")

wb <- loadWorkbook(filename, create=create)

if (existsSheet(wb, sheetname))
warning(sprintf("Sheet %s already existed and was overwritten", sheetname))

createSheet(wb, name=sheetname)
if (!is.null(rownames)) df <- transform(df, rownames = row.names(df))
writeWorksheet(wb, df, startRow=startRow, sheet=sheetname, rownames=rownames)

if (zebra) {
color <- createCellStyle(wb)
setFillForegroundColor(color, color = XLC$"COLOR.LIGHT_CORNFLOWER_BLUE")
setFillPattern(color, fill = XLC$FILL.SOLID_FOREGROUND)

for (i in 1:ncol(df)) {
setCellStyle(wb, sheet = sheetname, row = seq(startRow+1, nrow(df)+2, 2), col = i,
cellstyle = color)
}

#prcntg <- createCellStyle(wb) see my script of XLConnect.R for how it worked
#dollar <- createCellStyle(wb)
#setDataFormat(prcntg, format = "0.0")
#setDataFormat(dollar, format = "$ 0.00")

border <- createCellStyle(wb)
setBorder(border, side = c("bottom","top"), type = XLC$"BORDER.THICK", color = XLC$"COLOR.RED")
setCellStyle(wb, sheet = "Sheet", row = startRow, col = 1:ncol(df), cellstyle = border)
setColumnWidth(wb, sheet = "Sheet", column = 1:ncol(df), width = -1) # this autosizes each column
}

saveWorkbook(wb)
}

关于r - 如何使用 R 和 XLConnect 保存 XLSX 电子表格而不在单元格中换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28408627/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com