.net 如何在VSTO的“另存为”对话框中选择目录而不是文件?
我正在使用VSTO和C#创建一个Excel外接程序,我想设置外接程序生成文件的保存目录(它们的文件名是通过编程生成的) 我尝试使用.net 如何在VSTO的“另存为”对话框中选择目录而不是文件?,.net,excel,vsto,add-in,.net,Excel,Vsto,Add In,我正在使用VSTO和C#创建一个Excel外接程序,我想设置外接程序生成文件的保存目录(它们的文件名是通过编程生成的) 我尝试使用SaveFileDialog saveDlg=newsavefiledialog()在我的C#文件中,但“文件另存为”对话框无法让我选择目录 您能帮我设置saveDlg的属性吗 谢谢?我改用FolderBrowserDialog,如下代码所示: FolderBrowserDialog folderDlg = new FolderBrowserD
SaveFileDialog saveDlg=newsavefiledialog()代码>在我的C#文件中,但“文件另存为”对话框无法让我选择目录
您能帮我设置saveDlg
的属性吗
谢谢?我改用FolderBrowserDialog,如下代码所示:
FolderBrowserDialog folderDlg = new FolderBrowserDialog();
if (folderDlg.ShowDialog() == DialogResult.OK)
{
string directory = folderDlg.SelectedPath;
string fileName = directory + "\\" + MyGeneratedFileName();
… saves the file …
}
我改用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);
以下是您的一些选择:
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);
你可以用代替,你可以用代替。