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

在VS 2012上,我创build了一个VB.NET计算应用程序(基于variablesinput的输出),我需要将这些input和输出数据保存到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 

我的问题是,每次我点击保存button,它将数据保存到一个Excel表单文件,我必须先指定它的path。

我想要做的是,如果有任何方式从VB加载它自己然后select保存它(因为IAM将在很多机器中使用它,所以我不想把Excel文件在相同的每次我在任何其他机器上使用应用程序的path)

从My.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文件必须复制到输出目录,所以编辑它的属性,并select(其实我不是非常确定你需要这个…)

 Build Action = Content Copy To Output Directory = Copy Always 

PS这只是一个示例使用您的当前代码,但我强烈build议使用EPPlus库,如果你想创build/保存/修改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