1

Excel を閉じる前に「ダイアログとして保存」を強制的に表示して、EPPlus によって生成された XLSX (マクロではない) ファイルを作成して開く可能性はありますか?

私のシナリオ:
EPPlus で XLSX ファイルを作成し、アプリケーションの一時フォルダーに保存します。次に、すぐにこのファイルを呼び出して実行します (Excel が開き、ファイルが読み込まれます)。何も変更せずに Excel を閉じます。この時点で、「名前を付けて保存」ダイアログを強制して、このファイルを他のディレクトリ (一時的ではない) に保存したいと考えています。ファイルの任意のプロパティ (またはその他の方法) によって、このダイアログを強制的に表示できますか?

XLSM の解決: EPPlus
を使用して Excel マクロ ファイル (XLSM) のこの [名前を付けて保存] ダイアログを表示する必要がある場合は、次のようにします。

OfficeOpenXml.ExcelPackage Package;
  Package.Workbook.CreateVBAProject();
  OfficeOpenXml.VBA.ExcelVBAModule excelVbaModule =
    Package.Workbook.VbaProject.Modules.AddModule("Module1");
  StringBuilder mac = new StringBuilder();
  mac.AppendLine("Sub Auto_Close()");
  mac.AppendLine("Application.Dialogs(xlDialogSaveAs).Show");
  mac.AppendLine("End Sub" );
  excelVbaModule.Code = mac.ToString();
Package.Save()

マクロファイルではありません。(でも、多分それは不可能です)
ありがとう。

あなたの回答に基づいて私は何をしましたか?EPPlusの (オリジナルの代わりに)
を使用してみます:SaveAs.Save()

System.IO.FileInfo fileInfo = new System.IO.FileInfo(targetTemporaryFile);
if (fileInfo.Exists) { fileInfo.Delete(); }
Package.SaveAs(fileInfo);

しかし、ダイアログは表示されませんでした。

4

1 に答える 1