将Excel文件附加到已完成的Visual Basic项目

时间:2013-12-12 16:15:21

标签: vb.net excel excel-vba vba

我创建了一个包含多种表单的Visual Basic项目。在项目中,我将信息写入excel文件,我引用excel文件所在的本地(C :)驱动器的位置。通过引用我的意思是,我打开一个excel实例十提供我的硬盘驱动器上的source =本地路径。我的问题是如何将excel文件附加到项目中,因此我不必引用本地位置并可以在另一台计算机上运行该程序。换句话说,如何将excel文件与程序捆绑在一起?如果我拥有它,我将如何更改对excel文件的调用"捆绑"该计划?

3 个答案:

答案 0 :(得分:4)

将excel文件添加到项目中。转到解决方案资源管理器并右键单击excel文件并选择属性。将复制到输出目录更改为始终复制。现在该文件将与您的exe在同一目录中。您可以使用Reflection.Assembly.GetExecutingAssembly来获取目录。

将文件添加到项目中:

右键点击项目>添加>现有项目>您的Excel File.xls

要在build中包含该文件:

右键单击文件>属性>复制到输出目录。将此值设置为“始终复制”或“如果较新则复制”。

以下是获取excel文件路径的代码:

Dim exeDir As New IO.FileInfo(Reflection.Assembly.GetExecutingAssembly.FullName)
Dim xlPath = IO.Path.Combine(exeDir.DirectoryName, "Your Excel File.xls")

xlPath现在应该是excel文件的完整路径。

答案 1 :(得分:0)

用户评论后修改后的回复

1)首先创建一个设置(名为MyExcelFile)以保存excel文件的名称和路径。

Create Setting

2)现在,您可以使用My.Settings.MyExcelFile来引用您的Excel文件路径。

3)如果在所需位置找不到excel文件,可以通过打开文件打开对话框并要求用户指定文件位置来重置它。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If Not IO.File.Exists(My.Settings.MyExcelFile) Then
        Dim ofd As New OpenFileDialog
        ofd.Filter = "Excel Files (*.xls, *.xlsx)|*.xls; *.xlsx"
        ofd.Title = "Specify Excel File Location"
        If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
            My.Settings.MyExcelFile = ofd.FileName
            My.Settings.Save()
        End If
    End If
End Sub

答案 2 :(得分:0)

我认为我没有真正理解你的意思但是如果你需要在应用程序中单击一下打开excel文件而你不想写excel文件的路径(可能是因为你想要你的app便携式)所以答案是

  1. 将excel文件放在项目文件夹中的任何位置
  2. 添加现有项目(*.* filter)并选择Excel文件
  3. 更改excel文件构建操作的属性:resource复制到输出目录:始终复制
  4. 打开解决方案的属性,然后单击资源拖动文件并将其删除
  5. 使用(using system.reflection& using system.io& using system.resources

    然后编写像这样的代码

    string sPath = Path.GetTempFileName();
    File.WriteAllBytes(sPath, Properties.Resources.excel File name here);
    
  6. 然后把它(spath)用作你的路径,这样你就可以用里面的excel文件改变项目位置,它仍然可以正常工作而不用为它写一个常量路径