【问题标题】:Export data from VB to Excel sheet将数据从 VB 导出到 Excel 工作表
【发布时间】:2014-01-28 00:17:19
【问题描述】:

在 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 文件每次我在任何其他机器上使用该应用程序时都在同一路径中)

【问题讨论】:

  • 如果使用 xls.Workbooks.Add 而不是 xls.Workbooks.Open("filename") 会发生什么?我认为这应该创建一个无标题的工作簿,然后当您尝试关闭它时 Excel 会显示一个保存对话框。这是你想要发生的事情吗?

标签: vb.net excel visual-studio


【解决方案1】:

从 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

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

【讨论】:

  • 智能解决方案,谢谢,但这里的问题是,我可以自己从 VB 生成预定义的 excel 文件,这意味着将 excel 表加载到 VB 资源,然后输出的 excel 表将包含数据并保存,无需选择excel文件然后打开它来保存数据。感谢您的宝贵时间,对不起,我是这里的初学者
  • 非常感谢,它终于可以工作了,非常感谢您的帮助,但是当我尝试构建程序时发生了一个小问题,因为文件位置错误,字面意思是“System.Runtime.InteropServices .COMException (0x800A03EC): 'C:\Users\Ahmed\AppData\Local\Apps\2.0\95O0CANR.V0V\Resources\book1.xlsx' 找不到。检查文件名的拼写,并验证文件位置正确。如果您尝试从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。"
  • 这是在构建或发布期间发生的吗?
  • 我使用资源选项卡添加了该文件,只需“添加现有文件”,我就可以毫无问题地构建。您确定该文件仍然存在,并且名称相同吗?
  • 是的,我使用“添加现有文件”添加它并成功运行,当我发布它时会出现问题。
猜你喜欢
  • 2016-08-25
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
相关资源
最近更新 更多