EPPlusを使用すると、ドキュメントをあらかじめ定義されたパスに保存するのは簡単ですが、毎回異なるパスに保存する必要があるため、標準の保存ダイアログを表示するにはEPPlusが必要です。EPPlusライブラリ
は、データテーブルからExcelファイルを作成することができます私のコード、それを少しフォーマットし、それが指定された場所に保存します。
DirectoryInfo outputDir = new DirectoryInfo(@"C:\Users\user001\Downloads");
FileInfo newFile = new FileInfo(outputDir.FullName + @"\Crit.xlsx");
if (newFile.Exists) {newFile.Delete();}
using (ExcelPackage pck = new ExcelPackage(newFile))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Crit");
ws.Cells["A1"].LoadFromDataTable(dtCrit, true);
ws.Cells.AutoFitColumns(0);
ws.Cells["A1:Z1"].Style.Border.Top.Style = ExcelBorderStyle.Thin;
ws.Cells["A1:Z1"].Style.Font.Bold = true;
pck.Save();
}
がどのように手動でコピー先のフォルダを選択したためにダイアログボックスを表示することができますか? 私はpck.SaveAsてみましたが、私はそれを動作させることができず、このことについて多くの情報がありません...
UPDATE: プロジェクト内から、またはサーバーから実行時にアプリケーションが動作します。 shourcutで実行するとクラッシュするか、exeをデスクトップにコピー/ペーストします。
string mydocpath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
try {
DirectoryInfo outputDir = new DirectoryInfo(mydocpath);
FileInfo newFile = new FileInfo(outputDir.FullName + @"\Requerimientos_" + DateTime.Now.ToString("dd-MM-yyyy_hh-mm") + ".xlsx");
if (newFile.Exists) { newFile.Delete(); }
using (ExcelPackage pck = new ExcelPackage(newFile))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Requerimientos");
ws.Cells["A1"].LoadFromDataTable(dtReque, true);
ws.Cells.AutoFitColumns(0);
ws.Cells["A1:Z1"].Style.Border.Top.Style = ExcelBorderStyle.Thin;
ws.Cells["A1:Z1"].Style.Font.Bold = true;
var dlg = new SaveFileDialog { FileName = "Requerimientos_" + DateTime.Now.ToString("dd-MM-yyyy_hh-mm"), DefaultExt = ".xlsx", Filter = "Excel Sheet (.xlsx)|*.xlsx", InitialDirectory = mydocpath };
var result = dlg.ShowDialog();
if (result == true)
{
using (var stream = dlg.OpenFile())
{
pck.SaveAs(stream);
OpenDialog("File Created", "Export");
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
あなたは 'SaveFileDialog'を使ってみましたか? – Jose
これはWPFで動作しますか?それを見つけることができません。 – Piston
win32ライブラリでは、WPFにはsavefiledialog自体がありません。しかし、私はWPFプロジェクトに取り組んでおり、そのライブラリを使用しています。 – Jose