2016-08-11 11 views
2

私はR出力からExcelファイルを生成するためにopenXLSXパッケージを使用しています。
ExcelブックをExcelに追加する方法はありません。
pythonには、エクセルチャートを追加するクラスを持つcreating Excel filesのモジュールがあります。
Rでこれを行う方法はありますか?Rを使用してチャートを作成する

+0

'xlsx'パッケージと' r2excel'パッケージの組み合わせを試しましたか? – Abdou

+0

私は 'r2excel'がRのプロットを追加してチャートを上回らないことを見てから – eliavs

+0

あなたがしたいことを誤解しているに違いありません。あなたはRでチャートを作ってExcelシートにインポートしたいと思っていました。多分、他の誰かがより良い提案をしているでしょう。しかし、なぜ手作業かVBAのどちらかでRを作成してExcelブックを作成したいと思っていますか? – Abdou

答えて

2

ここにはパッケージXLConnectを使用したソリューションがあります。 小さなメモですが、事前に作成する必要のあるチャートのテンプレートに依存しており、既存のファイルにシートやグラフを追加する代わりに新しいファイルを生成します。

これは2つの段階で構成されています

  1. はあなたが使用したいグラフの種類のためのExcelテンプレートを準備します。
  2. 毎回必要なRのデータでテンプレートファイルを更新します。

最初の手順:あなたが必要とするグラフの種類に応じてExcelでテンプレートを準備します。すべてのテンプレートを同じファイル(異なるシートにある)または複数の異なるファイルに入れることができます。テンプレートを準備するときは、シート内に必要なチャートのタイプを含めますが、特定のセルを参照する代わりに、「名前付き範囲」を使用する必要があります。 for exampleを参照してください。 sample file I createdを使用することもできます。ファイルとチャートのデータ参照(Sheet1!$A$2:$A$4Sheet1!$B$2:$B$4の代わりにSheet1!bar_namesSheet1!values)の名​​前付き範囲の使用に注意してください。

Excelの名前付き範囲のサイドノート。名前付き範囲は、グラフで使用するデータに名前を付け、絶対位置ではなく名前付き範囲を使用するように「チャートに指示する」ことを意味します。 「数式」メニューの「名前管理」にアクセスすることができます。名前付き範囲を使用する理由は、XLConnectが名前付き範囲を制御できるため、名前付き範囲を変更するとグラフが動的に更新されるためです。

第2ステップ:あなたのニーズに合うように次のコードを適用してください。ほとんどの場合、独自のデータフレームを使用し、createName関数で参照を更新します。

library(XLConnect) # load library 
wb1 <- loadWorkbook(filename = "edit_chart_via_R_to_excel.xlsx") 
new.df <- data.frame(Type = c("Ford", "Hyundai", "BMW", "Other"), 
      Number = c(45, 35, 25, 15)) # sample data 
writeWorksheet(wb1, data = new.df, sheet = "Sheet1", 
       startRow = 1, startCol = 1, header = TRUE) 
# update named ranges for the chart's use. 
# Note that 
# "Sheet1!$A$2:$A$5" and "Sheet1!$B$2:$B$5" 
# should change according to the data you are updating 
createName(wb1, "bar_names", "Sheet1!$A$2:$A$5", overwrite = TRUE) 
createName(wb1, "values", "Sheet1!$B$2:$B$5", overwrite = TRUE) 
saveWorkbook(wb1) 

これはすべきことです。

変更を開始する前にテンプレートをコピーして保存し、新しいファイルとして提供したり、元のテンプレートを上書きせずに保存したりすることができます。

関連する問題