2016-06-23 16 views
3

これまでのところ答えが見つからなかったので少し感心しました。Rパスワード保護のExcelブックを保存

私は、1つのソースからデータをロードし、そこから数十のExcelファイルを書き込む小さなRスクリプトを持っています。問題は今です:これらのファイルはパスワード保護が必要です。

現在、私のスクリプトはXLConnectライブラリを使用してExcelファイルを保存しています。それはシンプルな作り、

# Load data from source 
source = <connection string to source> 
dataFromSource = <read from source> 

# Process 
for (data in dataFromSource) { 
    wb = loadWorkbook(paste("myWorkbook", sourceName, ".xlsx"), create = TRUE) 
    createSheet(wb, name = "sheet") 
    <put data into the "sheet"> 
    saveWorkbook(wb) 
} 

ので:スクリプトは、このようなものであるは、どのように私はRでパスワード保護をExcelファイルを作成するのですか?

+0

こんにちはリック、私の答えはあなたが探していたヘルプを返しましたか? –

+0

@Dale申し訳ありませんが、あなたが答えた時点でもう私はそれを必要としませんでした。しかし、私はあなたのソリューションをチェックするための小さなデモを作成しようとします。ありがとう:) – Rick

答えて

1

ブック全体または1枚のシートを保護するかどうかを指定する必要があります。あなたが単一のシートをパスワードで保護する探しているなら、あなたは(ワークブックを保存する前に)次rJava機能を使用することができます。

rJava::.jcall(wb$getSheet("Sheet1"),"V","protectSheet", "MyPassword123") 
xlsx::saveWorkbook(wb,"C:/myfilepath) 

「.jcall」機能は、ブック内の指定されたシートにパスワードを適用します。これを行うには、 "rJava"ライブラリをインストールし、正しく動作させる必要があります。

この機能、私はXLSXを使用して、その後、最初にファイルを書き込むことがXLConnectで働いていたR.でExcelファイルを操作するバックでそれらを読んで、パスワード保護を適用するためにXLSXパッケージを使用している場合にのみ機能します、同じパスにファイルを再保存します。

1

ファイルアーカイバにアクセスでき、rJavaをインストールできない場合、他の出力形式でも動作する可能性がある回避策は、ファイルを通常どおり保存してから、パスワード保護でアーカイブすることです。

など。 7-zipを使用して:

setwd("c:/Program Files/7-Zip/") 
pwd <- "123" 
shell(paste0("7z a d:/Data/myfile.zip d:/Data/myfile.xlsx -p", pwd)) 
関連する問題