Vb.net 将数据从VB导出到Excel工作表

Vb.net 将数据从VB导出到Excel工作表,vb.net,excel,visual-studio,Vb.net,Excel,Visual Studio,在VS 2012上,我创建了一个VB.NET计算应用程序(基于变量输入的输出),我需要将这些输入和输出数据保存到excel工作表中的某些单元格中, 以下是我使用的代码示例: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim xls As Microsoft.Office.Interop.Excel.Application Dim xlsWor

在VS 2012上,我创建了一个VB.NET计算应用程序(基于变量输入的输出),我需要将这些输入和输出数据保存到excel工作表中的某些单元格中, 以下是我使用的代码示例:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim xls As Microsoft.Office.Interop.Excel.Application
        Dim xlsWorkBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlsWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value

        xls = New Microsoft.Office.Interop.Excel.Application
        xlsWorkBook = xls.Workbooks.Open("D:\bookl.xlsx")
        xlsWorkSheet = xlsWorkBook.Sheets("sheet1")

        xlsWorkSheet.Cells(1, 1) = TextBox1.Text

        xlsWorkBook.Close()
        xls.Quit()

End Sub
我这里的问题是,每次单击“保存”按钮时,它都会将数据保存到excel工作表文件中,我以前必须指定其路径


我想做的是,如果有任何方法可以从VB自行加载它,然后选择保存它的位置(因为我将在许多机器上使用它,所以我不想每次在任何其他机器上使用该应用程序时都将excel文件放在同一路径中)

从我的.Resources位置打开excel文件

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("Sheet1")

    xlsWorkSheet.Cells(1, 1) = TextBox1.Text

    xlsWorkBook.Close()
    xls.Quit()

    MsgBox("file saved to " & resourcesFolder)
End Sub
资源模板xlsx文件必须复制到输出目录,因此编辑其属性并选择(实际上我不确定您是否需要此…)


p.S.这只是一个用于当前代码的示例,但我强烈建议如果要创建/保存/修改excel文件,请使用。

如果使用xls.Workbooks.Add而不是xls.Workbooks.Open(“文件名”)?我认为这应该创建一个无标题的工作簿,当您试图关闭它时,Excel将显示一个保存对话框。这就是您希望发生的事情吗?聪明的解决方案,谢谢,但这里的问题是,我是否可以从VB it自身生成预定义的excel文件,这意味着将excel工作表加载到VB资源,然后输出的excel工作表将包含数据并保存,而无需选择excel文件,然后打开它以保存其上的数据。感谢您的时间&很抱歉,我是一个初学者。非常感谢,它终于开始工作了,非常感谢您的帮助,但是在我尝试构建程序时出现了一个小问题,因为文件位置错误,字面上是“System.Runtime.InteropServices.COMException(0x800A03EC):'C:\Users\Ahmed\AppData\Local\Apps\2.0\95O0CANR.V0V\Resources\book1.xlsx'找不到。请检查文件名的拼写,并验证文件位置是否正确。如果您试图从最近使用的文件列表中打开文件,请确保该文件未被重命名、移动或删除。”这是在构建还是发布期间发生的?我使用“资源”选项卡添加了该文件,只需“添加现有文件”,我就可以毫无问题地构建。你确定该文件仍然存在,同名吗?是的,我使用“添加现有文件”添加了它&它运行成功,问题发生在我发布它时。
Build Action = Content
Copy To Output Directory = Copy Always