2017-03-07 33 views
1

MS Excelシートのセルに簡単に変更しようとするとRからXLConnectになります。MS Excelファイルのセル形式をXLConnect経由でRから

具体的には、最初の行を太字にします。クイック検索でわかるのは、Excel内でスタイルを定義してからRにインポートすることができますが、すべての変更がRスクリプトで再現可能でなければならないため、このオプションは私には適していません。ここで

XLConnectで作成したExcelファイルの例です:

require(XLConnect) 

wb <- loadWorkbook("test.xlsx", create = TRUE) 
createSheet(wb, name = "foo") 
df <- data.frame(number = 1:4, 
       species = c("dog", "cat")) 
writeWorksheet(wb, df, sheet = "foo", startRow = 1, startCol = 1) 
saveWorkbook(wb) 

おそらくこれは、xlsxパッケージ付き]簡単ですか?私は既にopenxlsxと技術的な問題に遭遇しました。

EDIT:私は、セルの背景色を変更し、同様の方法が太字にフォントを変更するために使用することができると仮定する方法を知っている:

cs.tr <- createCellStyle(wb) 
setFillForegroundColor(cs.tr, color = XLC$"COLOR.WHITE") 
setCellStyle(wb, sheet = "foo", row = 1, col = 1:2, 
      cellstyle = cs.tr) 
+0

現在、XLConnectでは書式設定のテキストが不可能です。 16 https://cran.r-project.org/web/packages/XLConnect/vignettes/XLConnect.pdf – snoram

+0

質問を削除するかどうかわからない。 – snoram

答えて

4

この問題の周りの小さな作品があります。 "テンプレート" Excelスプレッドシートを作成し、興味のあるセルスタイルを作成します。たとえば、Excelでは、my.headerとmy.tableという新しいセルスタイルを作成します。 my.headerは11pt太字のCalibriで、my.regularは10ptのCalibriです。このExcelファイル( "myExcel.xlsx")をどこかに保存しておくと便利です。

は、次にRで、次の操作を行います。私は、私も私のお気に入りのズームレベルに視聴ズームを設定することができるように...あなたはおそらくことを行う必要はありませんスプレッドシート]タブのクローンを作成

library(XLConnect) 
wb <- loadWorkbook("myExcel.xlsx") 
# bring excel styles in the spreadsheet into R 
style.title <- getCellStyle (wb , "my.header") 
style.normal <- getCellStyle (wb , "my.table") 
# copy the first sheet in myExcel as a "template" for use in R 
sheet_names <- getSheets(wb) 
sheet_template <- sheet_names[1] 

# do something useful in R  
df<-mtcars 

# now clone template as a new sheet (instead of creating it) 
cloneSheet(wb, sheet_template, "newSheet") 
writeWorksheet (wb , data = df , sheet ="newSheet" , startRow =1 , startCol =1 , header = TRUE) 
setCellStyle(wb , sheet ="newSheet" , row =1 , col =1:dim(df)[2] , cellstyle =style.title) 

saveWorkbook (wb, "myNewExcel.xlsx") 

+0

ありがとうございます。これは便利かもしれませんが、私が質問したところでは、「Excel内でスタイルを定義してからRにインポートすることはできますが、このオプションは、すべての変更がRで再現可能でなければならないので、スクリプト。"私は代わりに 'xlsx'パッケージを使用しようとしていません。 http://stackoverflow.com/questions/42699557/xlsx-r-package-overwriting-previous-formatting – snoram

+1

再現性についての詳細とあなたの意思を忘れてしまった - あなたの定義は私のものより少し厳しいです。あなたの努力とxlsxに幸運。 – greengrass62

+0

"xlsx"に移動しようとしています....そして、物事はかなりうまくいっています。あなたの答えは間違いなくxlconnectを主張する他の人には役に立ちます。 – snoram

関連する問題