提示用vb.net打开excel文件的保存对话框

Iam使用visual studio 2012,

我想打开“保存对话框”来select保存我的文件,而不是使用固定的path,下面的代码是我想用它的一个样本:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim xlsWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlsWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim xls As New Microsoft.Office.Interop.Excel.Application Dim resourcesFolder = IO.Path.GetFullPath(Application.StartupPath & "\Resources\") Dim fileName = "book1.xlsx" xlsWorkBook = xls.Workbooks.Open(resourcesFolder & fileName) xlsWorkSheet = xlsWorkBook.Sheets("a") xlsWorkSheet.Cells(1, 1) = TextBox1.Text xlsWorkBook.SaveAs("C:\output\book1.xlsx") xlsWorkBook.Close() xls.Quit() End Sub 

我想改变这个path“C:\ output \ book1.xlsx”来保存对话框,所以我可以select手动保存它的位置。

非常感谢..

像这样,不要忘记像我添加的Marshal类处理COM对象。

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim xls As New Microsoft.Office.Interop.Excel.Application Dim xlsWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlsWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim resourcesFolder = IO.Path.GetFullPath(Application.StartupPath & "\Resources\") Dim fileName = "book1.xlsx" xlsWorkBook = xls.Workbooks.Open(resourcesFolder & fileName) xlsWorkSheet = xlsWorkBook.Sheets("a") xlsWorkSheet.Cells(1, 1) = TextBox1.Text Using sfd As New SaveFileDialog If sfd.ShowDialog() = DialogResult.OK Then xlsWorkBook.SaveAs(sfd.FileName) MessageBox.Show(sfd.Filename) End If End Using xlsWorkBook.Close() xls.Quit() Marshal.FinalReleaseComObject(xlsWorkSheet) Marshal.FinalReleaseComObject(xlsWorkBook) Marshal.FinalReleaseComObject(xls) End Sub 

一个更全面的方式来打开另存为对话框比OneFineDay的答案(使用相同的方法)。
这将使用指定的目录,文件名,扩展types和窗口标题打开“另存为”对话框; 它也提前覆盖任何现有的文件。

 Dim dir as String = "C:\output\" Dim fName As String = "Book1" Using sfd As New SaveFileDialog sfd.InitialDirectory = dir sfd.Title = "Save As" sfd.OverwritePrompt = True sfd.FileName = fName sfd.DefaultExt = ".xlsx" sfd.Filter = "Excel Workbook(*.xlsx)|" sfd.AddExtension = True If sfd.ShowDialog() = DialogResult.OK Then xlsWorkBook.SaveAs(sfd.FileName) End If End Using 

添加一个openfiledialog到你的表单,然后…

  With OpenFileDialog1 .Title = " whatever" .InitialDirectory = "c:\" .Multiselect = False If .ShowDialog() = DialogResult.OK Then xlsWorkBook.SaveAs(.FileName) End If 

结束

你可以使用这个:

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim xlsWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlsWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim xls As New Microsoft.Office.Interop.Excel.Application Dim resourcesFolder = IO.Path.GetFullPath(Application.StartupPath & "\Resources\") Dim fileName = "book1.xlsx" xlsWorkBook = xls.Workbooks.Open(resourcesFolder & fileName) xlsWorkSheet = xlsWorkBook.Sheets("a") xlsWorkSheet.Cells(1, 1) = TextBox1.Text xlsWorkBook.SaveAs("C:\output\book1.xlsx") xls.Application.DisplayAlerts = False xlsWorkBook.Close() xls.Quit() End Sub