如何在 VSTO 的“另存为”对话框中 select 目录而不是文件?
How to select a directory instead of a file in a Save As dialog in VSTO?
我正在使用 VSTO 和 C# 创建一个 Excel 加载项,我想设置保存加载项结果文件的目录(它们的文件名以编程方式生成)。
我尝试在我的 C# 文件中使用 SaveFileDialog saveDlg = new SaveFileDialog();
,但“文件另存为”对话框无法让我 select 一个目录…
你能帮我设置 saveDlg
的属性吗?
谢谢?
我改用了 FolderBrowserDialog,如下代码所示:
FolderBrowserDialog folderDlg = new FolderBrowserDialog();
if (folderDlg.ShowDialog() == DialogResult.OK)
{
string directory = folderDlg.SelectedPath;
string fileName = directory + "\" + MyGeneratedFileName();
… saves the file …
}
以下是您的一些选择:
string fileName;
string folderName;
//Option 1
// FolderBrowserDialog - returns only path to the folder
FolderBrowserDialog fileFolderBrowserDialog = new FolderBrowserDialog();
fileFolderBrowserDialog.ShowDialog();
folderName = fileFolderBrowserDialog.SelectedPath;
fileName = string.Concat(fileSaveAsDialog.FileName, "\", "your generated file name.xlsx");
//Option 2
//FileDialog - returns full path to the file
//TODO: Set up this dialog with proper file extensions
FileDialog fileSaveAsDialog = new SaveFileDialog();
fileSaveAsDialog.AddExtension = true;
fileSaveAsDialog.Filter = "Excel Workbooks (*.xls, *.xlsx)|*.xls;*.xlsx|Excel Macro-Enabled Workbooks | *.xlsm |All files *.*| *.*";
fileSaveAsDialog.ShowDialog();
fileName = fileSaveAsDialog.FileName;
//Option 3
// Excel SaveAs method
// if file full name is generated programatically -
// you may save it without prompting user
Excel.Application xlApp = Globals.ThisAddIn.Application;
Excel.Workbook xlWB = xlApp.ActiveWorkbook; //or new Excel.Workbook(); or .Workbooks["Workbook name"]
fileName = "C:\Users\username\Desktop\my Excel wb.xlsx";
xlWB.SaveAs(fileName);
我正在使用 VSTO 和 C# 创建一个 Excel 加载项,我想设置保存加载项结果文件的目录(它们的文件名以编程方式生成)。
我尝试在我的 C# 文件中使用 SaveFileDialog saveDlg = new SaveFileDialog();
,但“文件另存为”对话框无法让我 select 一个目录…
你能帮我设置 saveDlg
的属性吗?
谢谢?
我改用了 FolderBrowserDialog,如下代码所示:
FolderBrowserDialog folderDlg = new FolderBrowserDialog();
if (folderDlg.ShowDialog() == DialogResult.OK)
{
string directory = folderDlg.SelectedPath;
string fileName = directory + "\" + MyGeneratedFileName();
… saves the file …
}
以下是您的一些选择:
string fileName;
string folderName;
//Option 1
// FolderBrowserDialog - returns only path to the folder
FolderBrowserDialog fileFolderBrowserDialog = new FolderBrowserDialog();
fileFolderBrowserDialog.ShowDialog();
folderName = fileFolderBrowserDialog.SelectedPath;
fileName = string.Concat(fileSaveAsDialog.FileName, "\", "your generated file name.xlsx");
//Option 2
//FileDialog - returns full path to the file
//TODO: Set up this dialog with proper file extensions
FileDialog fileSaveAsDialog = new SaveFileDialog();
fileSaveAsDialog.AddExtension = true;
fileSaveAsDialog.Filter = "Excel Workbooks (*.xls, *.xlsx)|*.xls;*.xlsx|Excel Macro-Enabled Workbooks | *.xlsm |All files *.*| *.*";
fileSaveAsDialog.ShowDialog();
fileName = fileSaveAsDialog.FileName;
//Option 3
// Excel SaveAs method
// if file full name is generated programatically -
// you may save it without prompting user
Excel.Application xlApp = Globals.ThisAddIn.Application;
Excel.Workbook xlWB = xlApp.ActiveWorkbook; //or new Excel.Workbook(); or .Workbooks["Workbook name"]
fileName = "C:\Users\username\Desktop\my Excel wb.xlsx";
xlWB.SaveAs(fileName);