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

标签 vb.net excel visual-studio

我正在使用 Visual Studio 2012,

我想打开“保存对话框”来选择保存文件的位置而不是使用固定路径, 以下代码是我想使用它的示例:

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

我想更改此路径“C:\output\book1.xlsx”来保存对话框,以便我可以选择手动保存它的位置。

非常感谢..

最佳答案

像这样,不要忘记像我添加的那样使用 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

关于vb.net - 使用 vb.net 打开 Excel 文件的保存对话框的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198296/

相关文章:

C# > VB 转换,RelayCommand 的行为不同

c# - .NET 定时器 Controller 的内部

vb.net - 了解在 VB 的官方约定指南中发现的矛盾

excel - Excel "save"文件如何通过 HTTP?

c++ - 在 MS VS 2017 中通过前向引用传递的 std::string 文字的空对象?

c# - 为什么我的线程没有立即启动?

laravel中的Excel文件验证不起作用

excel - 如何使用 Excel.run() 从函数返回值?

asp.net - 是否可以禁止打开 Visual Studio 中的 Web 窗体设计器?

c++ - 在 Visual Studio 2017 中使用 high_resolution_clock 获取错误的日期和时间/从纪元时间获取毫秒数(1970 年 1 月 1 日)