2016-03-29 20 views
1

各シートに3つのデータフレームを渡す必要がある複数のスプレッドシートでワークブックを作成しようとしています。しかし、私は、シートを作成する問題が次のエラーを持っている:Rスクリプトを使用してExcelファイルにワークシートを追加できません

Error in .jcall(wb, "Lorg/apache/poi/ss/usermodel/Sheet;", "createSheet", : method createSheet with signature (D)Lorg/apache/poi/ss/usermodel/Sheet; not found

私はXLSXパッケージを使用していますし、関連するコードの一部は以下の通りです:

wb <- createWorkbook(type="xlsx") 
saveWorkbook(wb, 'output.xlsx') 

for (i in year) 
{ 
    sheet.1 <- createSheet(wb, sheetName = i) 
    data.filter <- realdata[realdata$year_ == i,] 
    data.filter <- data.filter[data.filter$month_ >= month[1],] 
    data.filter <- data.filter[data.filter$month_ <= month[4],] 
    ptable_data_usado <- cast(data.filter, mondat ~ BASE, value = "myidx") 
    correl_usado <- cor(ptable_data_usado) 
    addDataFrame(correl_usado, sheet = i, startRow = 0, startColumn = 0) 
    ptable_data_prx <- cast(data.filter, mondat ~ NearestBaseName, value = "myidx") 
    correl_prx <- cor(ptable_data_prx) 
    addDataFrame(correl_prx, sheet = i, startRow = 14, startColumn = 0) 

} 

答えて

0

することはできません再現可能な例はありませんが、問題は2行あります。sheet = iがあります。代わりに、sheet = sheet.1にする必要があります。また、startRowstartColumnは、ゼロより大きい整数である必要がありますが、これは、見つからないエラーではなく、許容範囲外のエラーが発生します。

また、saveWorkbook(wb, 'output.xlsx')はループの後に来る必要があります。

+0

はそれを試みたが、私はまだ同じ問題を抱えています。私はそれを動的に命名することができると思っていましたが、これも問題ではありません。 –

+0

ここでは暗闇で撮影していますが、 'startRow = 0'と' startColumn = 0'はエラーを引き起こすはずです正の整数である)、「見つからない」エラーではありません。 – eipi10

+0

それも成功していないことを試してみました。問題はデータを追加することではなく、シートを作成することにあると私は思う。ファイルは成功して作成されますが、空です。 –

2

同様の問題が発生しました。私の解決策は、シート名を文字に強制することでした。

だからあなたの場合には、それは

sheet.1 <- createSheet(wb, sheetName = as.character(i)) 

かもしれないが、それが役立つことを願っています。

0

xlsxパッケージは、機能のためにAPACHE POIプロジェクトからJAVAで書かれた関数を呼び出すためにrJavaを使用しています。 ワークシートをレコード生成する機能は以下のように宣言されます。

public XSSFSheet createSheet(java.lang.String sheetname) 

これは、関数に文字列を渡す必要があることを意味します。 Rに戻り、シート名は文字ベクトルでなければなりません。 @ Oleksii-Shの答えが正しいです。

それとも、使用することができます:あなたはそれをSheet1の名前を付けたい場合は

sheet.1 <- createSheet(wb, sheetName = paste0("sheet", i)) 

、Sheet2の...

関連する問題