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

标签 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 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

附注这只是与您当前代码一起使用的示例,但我强烈建议使用 EPPlus Library如果您想创建/保存/修改 Excel 文件。

关于vb.net - 将数据从 VB 导出到 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020359/

相关文章:

vb.net - 找不到编译可执行文件vbc.exe

Excel VBA ByRef 参数类型不匹配

visual-studio - ASP.Net 5 Beta 8 xproj 无法打开

visual-studio - .fsx 中的 IntelliSense 和动态加载的程序集

c# - 干燥的 XML 注释

c# - C# 中的 System.String[*] 和 System.String[] 区别

c# - 使用计时器处理类的正确方法是什么?

java - Apache POI 在空电子表格中看到列?

excel - 如何检测用户是否选择取消InputBox VBA Excel

.net - 在 Visual Studio 中查看存储过程