【发布时间】:2015-07-08 18:41:38
【问题描述】:
我读取一个文件,更改其内容,然后我想将dataframe 写入一个新文件。让我烦恼的是列的宽度在 Excel 中不可调整(它不保存更改)。
我想知道是否可以编写列宽适合最长值的 csv 文件。
dat <- read.csv("Input.csv")
# Do some processing
#Write the new file
write.csv(dat, "Output.csv", row.names=FALSE)
编辑 1:
dat <- read.csv("Input.csv")
createSheet(wb, "test")
writeWorksheet(wb, dat, "test")
colWidths <- sapply(1:ncol(dat), function(i) max(c(8, nchar(c(names(dat)[i], as.character(dat[, i]))))))
setColumnWidth(wb, "test", 1:ncol(dat), colWidths * 256)
saveWorkbook(wb)
我做错了什么?它写入一个空文件。
【问题讨论】:
-
CSV 是纯文本格式,我看不出有什么方法可以直接做到这一点。我想您可以将所需列宽的向量存储为 csv 的最后一行,然后编写某种 excel 宏以将这些字段应用于导入的 CSV。但这似乎有点矫枉过正......或者,不知道,也许尝试在所需长度/列的底部附加一个空白行?不知道这是否可行。
-
见
write.fwflibrary(gdata)inside-r.org/packages/cran/gdata/docs/write.fwf -
强烈建议使用 minimal 代码。这个问题似乎更多地是关于调整 excel 电子表格中的列宽
-
@rawr 完全同意。已将代码精简到最低限度