xlsx
パッケージを使用して、やや複雑な書式設定のExcelシートを作成しています。xlsx Rパッケージが以前の書式を上書きする
問題は、既に1つのセルをフォーマットしていて、その上に何かを追加したい場合です。追加している新しいものを除き、デフォルトに戻ります。
解決策の1つは、それぞれ異なるケースを指定し、完全な書式設定を適用することです。特定のケースの数は、大きなシートで制御不能になる可能性があります。
書式設定を段階的に追加する必要があると思いますが、まだドキュメントには何も見つかりませんでした。
物事の私の現在の方法の再現性の例:最後に
require(xlsx)
# Some random data
n <- 20L
set.seed(1L)
df <- data.frame(species = sample(c("Cat", "Dog", "Unkown"), n, replace = TRUE),
speed = abs(rnorm(n)) * 20L)
# Create workbook
dfwb <- createWorkbook(type = "xlsx")
sheet <- createSheet(dfwb, sheetName = "ani")
addDataFrame(df, sheet, startRow = 1, startColumn = 1, row.names = FALSE)
# Change text of Cat to "red"
row <- getRows(sheet, rowIndex = which(df[, "species"] == "Cat") + 1L)
cel <- getCells(row, colIndex = 1)
redh_style <- CellStyle(dfwb) + Font(dfwb, color = "red")
for (i in names(cel)) {
setCellStyle(cel[[i]], redh_style)
}
# Highlight all rows where speed exceeds 18
row <- getRows(sheet, rowIndex = which(df[, "speed"] > 18) + 1L)
cel <- getCells(row, colIndex = 1:2)
high_style <- CellStyle(dfwb) + Fill(foregroundColor="#E2E6EB")
for (i in names(cel)) {
setCellStyle(cel[[i]], high_style)
}
# Save
setwd("c:/temp/csvm/")
saveWorkbook(dfwb, "so_cat.xlsx")
、以前に赤いフォントの一部が黒に戻っています。
Psと。私は他のパッケージを試しましたが、xlsx
に固執したいと思います。 XLConnect
は、Rから直接いくつかの書式設定を許可しておらず、openxlsx
を実行するのが技術的に困難です。
ニース。 'Reduce'を勉強しなければなりません。私は今のところこのような作業を実装しますが、受け入れる前にユーザーフレンドリーなものが到着するのを待つつもりです。 – snoram