2012-04-24 7 views
1

私は、週単位で再実行する必要があるレポートを準備しています。それはExcelでクライアントに行く必要があり、私は大きな成功のためにRのXLConnectパッケージを使用してきましたが、私は自分自身で来ることができない1つの問題があります。MiraiのXLConnectを使用した番号の書式設定

を考えると、次のコード:

a | b 
1 | 1 
2 | 2 
3 | 3 
etc. 

方法:しかし、彼らのようにワークシートに来ている

a | b 
1.0 | 1.0 
2.0 | 2.0 
3.0 | 3.0 
etc. 

:として

simple <- data.frame(a = c(1,2,3,,4,5), b = c(1,2,3,4,5)) 

library(XLConnect) 
prcntg <- createCellStyle(wb) 
setDataFormat(prcntg, format = "0.0") 

wb <- loadWorkbook("foo.xlsx", create = FALSE) 

sheet <- "bar" 
createSheet(wb, sheet) 

writeWorksheet(wb, simple, sheet = sheet) 
rows <- 1:5 
cols <- 1:2 
setCellStyle(wb, sheet = sheet, row = rows, col = cols, cellstyle = prcntg) 

私は値を印刷したいです後者ではなく前者を得ますか?私がここで見たドキュメントと投稿に基づいて:https://miraisolutions.wordpress.com/2011/08/31/xlconnect-a-platform-independent-interface-to-excel/

私はすべてのことを正しくやっているように感じますが、明らかに私はそうではありません。

+0

私はpeachを動作させるformatコマンドを見ましたが、XLConnectは結果の値を文字列としてエクスポートします。これは数字ではありません。クライアントはアドホック分析/報告。 Excelの数学コマンドは、うまく動作しない傾向があります。 – Choens

答えて

1

次は私のために動作するように表示されます。

wb <- loadWorkbook("~/Desktop/foo.xlsx", create = TRUE) 
prcntg <- createCellStyle(wb) 
setDataFormat(prcntg, format = "0.0") 

sheet <- "bar" 
createSheet(wb, sheet) 

writeWorksheet(wb, simple, sheet = sheet) 
rows <- 2:6 
cols <- 1:2 
setCellStyle(wb, sheet = sheet, row = rep(2:6,times = 2), col = rep(1:2,times = 6), cellstyle = prcntg) 
saveWorkbook(wb) 

これは(警告を含む)で実行されます。行と列の引数の指定はsetCellStyleにあることに注意してください。私は、XLConnectが最近私のためにちょっとしたことをしていたので(OS Xを使っていて、2.15.0のソースからそれをビルドしなければならなかったので)、これもあなたにとってうまくいくと思うのは嫌ですCRANはバイナリがないのでチェックします)。

+0

私は今日あなたの提案を試してみるつもりです。私は、行と列の情報をそのように繰り返す必要があることを認識していませんでした。理想的には、行= rep(2:6、times = length(cols))などの形式をとる必要があります。 – Choens

+0

一般に、私はそう信じています。違いは、引数が 'startRow'、' endRow'などのようなものである関数です。ここでは、個々のセルではなく範囲を指定していることをもう少し明示しています。正直なところ、 'setCellStyle'が少し違っていて、私のXLConnectのバージョンが少し動いている可能性があることに驚きました。 – joran

+0

それは動作します。 writeWorksheet()コマンドからのオフセットはSetCellStyle()には関係しないので、ここでは絶対寸法を使用する必要があることを確認しようとしています。 – Choens

関連する問題