みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
FileMakerからデータをエクスポートした際、(Excelにて。拡張子はxlsx)
個人情報等があるので、クライアントからパスワードを掛けてほしいと言われました。
(サーバーのスケジュールでエクスポートしたデータをメールにて送付しております。)
基本的には、無理だと思うのですが、何か方法があればお知恵をお貸しください。
ZIPファイルにしてパスワードを設定ならコマンドラインで動作する以下のようなアプリーケーションを使い、FileMaker Serverのスケジュールに組み込めば可能でしょう。
コマンドでZIPや7zにパスワードを付ける | 7-Zip
https://sevenzip.osdn.jp/howto/dos-comm … sword.html
ちなみに、クライアント(FileMaker Pro)からならPowerShellを使い、Excelファイル自体にパスワードの設定が可能です。
PowerShellの例
$FilePath="C:\Users\xxxxx\AppData\Local\Temp\S10.1\file.xlsx";
$Password="0000";
$excel = New-Object -ComObject Excel.Application;
$excel.Visible = $true;
$books = $excel.Workbooks;
$book = $books.Open($FilePath);
$book.Password=$Password;
$book.Save();
$book.Close();
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)>$null ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)>$null ;
検証
Windows 10
Excel 2016
※FileMaker からエクスポート→パスワード設定 を行うには「Eventを送信」を使用し上記PowerShellをFileMakerのスクリプトに組み込む必要があります。
Offline
qb_dp 様
ありがとうございます。
PowerShellで動作の確認が取れました。誠にありがとうございます。
ただ非常に申し訳ないのですが、お恥ずかしながらEventを送信スクリプトを使用したことがなく、どうすればEventを送信でPowerShellが動作するのか分かっておりません。
TEST.ps1というファイルを作ったのですが、テキストが開くのみで...
ご教授いただければ幸いです。
何卒宜しくお願い申し上げます。
qb_dp 様
ありがとうございます。
PowerShellで動作の確認が取れました。誠にありがとうございます。
ただ非常に申し訳ないのですが、お恥ずかしながらEventを送信スクリプトを使用したことがなく、どうすればEventを送信でPowerShellが動作するのか分かっておりません。
TEST.ps1というファイルを作ったのですが、テキストが開くのみで...
ご教授いただければ幸いです。
何卒宜しくお願い申し上げます。
自己解決しました。
PowerShell等初めて使うので、分からない事だらけでした。
ありがとうございました。
参考まで。
「レコードのエクスポート でExcelファイルをエクスポートし、パスワードを設定する」スクリプトの例:
変数を設定 [$Password; 値: "0000"]
変数を設定 [$FileName; 値: "file.xlsx"]
変数を設定 [$Temporary_pass; 値: Get ( テンポラリパス )]
変数を設定 [$FilePath; 値: $Temporary_pass & $FileName]
レコードのエクスポート [ダイアログあり:オフ; ディレクトリの作成:オフ; 「$FilePath」; Unicode (UTF-16)]
変数を設定 [$FilePath_win; 値: Substitute ( Replace ( $FilePath ; 1 ; 1 ; "" ) ; "/" ; "\\" )]
変数を設定 [$PS; 値:
Let([
¢PS=
"
$FilePath='{FIlePath}';
$Password='{Password}';
$excel = New-Object -ComObject Excel.Application;
$excel.Visible = $true;
$books = $excel.Workbooks;
$book = $books.Open($FilePath);
$book.Password=$Password;
$book.Save();
$book.Close();
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)>$null ;
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)>$null ;
"
];
Substitute ( ¢PS
; ["{FIlePath}" ; $FIlePath_win]
; ["{Password}" ; $Password]
)
)
]
変数を設定 [$Command; 値: Quote ( $PS )]
Event を送信 [「aevt」; 「odoc」; "powershell -WindowStyle Hidden -Command " & $Command]
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 509.58 KiB (Peak: 515.55 KiB) ]