web-dev-qa-db-ja.com

RのOpenxlsxパッケージを使用してExcelブックの既存のシートを変更するにはどうすればよいですか?

Excelファイルの読み書きに「openxlsx」パッケージを使用しています。他のシートの数式で使用される「データ」と呼ばれるシートを含む固定ファイルがあります。他の人に触れずにこのデータシートを更新したい。私は次のコードを試しています:

write.xlsx(x = Rev_4, file = "Revenue.xlsx", sheetName="Data")

ただし、これによりExcelファイルが消去され、[データ]シートの新しいデータだけで新しいファイルが作成され、他のファイルはすべて削除されます。何かアドバイス?

15
Nipun Arora

これを試して:

wb <- loadWorkbook("Revenue.xlsx")
writeData(wb, sheet = "Data", Rev_4, colNames = F)
saveWorkbook(wb,"Revenue.xlsx",overwrite = T)

完全なワークブックをロードし、そのデータを変更してディスクに保存する必要があります。 writeDataでは、開始の行と列を指定することもできます。また、ディスクに保存する前に他のセクションを変更することもできます。

16
R. Schifini

このパッケージを見つけました。これはopenxlsxに依存し、xlsxファイルに多くのシートを挿入するのに役立ちます。多分それは簡単になります:

「xlsx2dfs」

データフレームのリストをExcelファイルに書き込み、各データフレームを新しいシートに、リスト要素名をシート名として記述します。

dfs2xlsx(dfs、fpath、rowNames = TRUE、colNames = TRUE)

dfsデータフレームのリスト(リスト内の名前はシートの名前です)。

fpath出力のパスとファイル名を表す文字列。

rowNames各シートのテーブルの最初の列にテーブルの行名が含まれているかどうかを示すブール値。

colNames各シートのテーブルの最初の行にヘッダーが含まれているかどうかを示すブール値。

パッケージのドキュメント

0
Americo Neto