programing

Excel의 열 너비를 R로 정의

muds 2023. 9. 14. 00:01
반응형

Excel의 열 너비를 R로 정의

최종 제품은 250개 이상의 열을 가진 엑셀 CSV 스프레드시트입니다.혹시 R에서 엑셀로 열 너비를 결정할 수 있는 방법이 있는지 궁금합니다.

저는 write.csv2를 사용하고 있는데, 이는 모두 8,43과 같은 엑셀의 열폭을 만들어냅니다.

write.tw2(df, na = ", file= "Final.csv")

가능하다면 모든 것을 한 번에 바꾸거나 특정한 것만 바꿀 수 있는 방법을 찾고 있습니다.R에서 VBA를 실행하는 것이 내 유일한 선택입니까?

도와주셔서 감사드려요!

패키지 xlsx 확인 부탁드립니다.엑셀 파일 생성에 사용하고 있는데 꽤 좋습니다.도움이 되는 방법으로 ColumnWidth를 설정할 수 있습니다.xlsx 패키지 기능에 대한 보다 자세한 예를 보려면 여기를 확인하십시오.


여기 패키지를 이용한 작업 예시가 있습니다.xlsx.

df <- data.frame(matrix(rnorm(100),nc=10))
library(xlsx)
# must save as an xls or xlsx file...
write.xlsx(df,"Final.xlsx", row.names=FALSE)
# load it back
wb <- loadWorkbook("Final.xlsx")
sheets <- getSheets(wb)
# set widths to 20
setColumnWidth(sheets[[1]], colIndex=1:ncol(df), colWidth=20)
saveWorkbook(wb,"Final.xlsx")
# autosize column widths
autoSizeColumn(sheets[[1]], colIndex=1:ncol(df))
saveWorkbook(wb,"Final.xlsx")

수용된 답변에 대한 약간의 개선: 파일을 다시 읽고 수정하기 위해 파일을 쓰는 것은 그다지 우아하지 않습니다.게다가 xls 파일을 덮어쓰는 경험을 했습니다.saveWorkbook파일이 "손상"될 수 있습니다(즉, Excel은 파일을 열 때 복구해야 합니다).

이를 방지하기 위해 다음과 같이 진행할 수 있습니다.

df <- data.frame(matrix(rnorm(100), nc=10))
library(xlsx)
wb <- createWorkbook(type = "xlsx")
sheet <- createSheet(wb, sheetName = "rnormdata")
addDataFrame(df, sheet, row.names = FALSE)
setColumnWidth(sheet, colIndex = 1:3, colWidth = 20)
autoSizeColumn(sheet, colIndex = 4:ncol(df))
saveWorkbook(wb, "Final.xlsx")

데이터 세트의 각 열에 대해 특정 너비를 설정할 수 있습니다.

for(c in 1:ncol(yourData)){
setColumnWidth(sheetIndex,colIndex=c,colWidth=max(nchar(c(names(yourData[c],yourData[,c])))))
}

언급URL : https://stackoverflow.com/questions/27322110/define-excels-column-width-with-r

반응형