簡體   English   中英

將數據從VB導出到Excel工作表

[英]Export data from VB to Excel sheet

在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文件放在同一個每次我在任何其他機器上使用該應用程序的路徑)

從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文件復制到輸出目錄,因此請編輯其屬性並選擇(實際上我不確定您是否需要此...)

Build Action = Content
Copy To Output Directory = Copy Always

PS這只是一個與當前代碼一起使用的示例,但如果您想創建/保存/修改Excel文件,我強烈建議使用EPPlus庫

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM