附加Excel文件以完成Visual Basic项目

我已经创build了许多forms的Visual Basic项目。 在项目中,我写信息到一个excel文件,我参考了excel文件所在的本地(C :)驱动器的位置。 通过引用我的意思是,我打开一个Excel实例十提供我的硬盘上的源=本地path。 我的问题是如何将Excel文件附加到项目,所以我不必引用本地位置,并可以在另一台计算机上运行该程序。 换句话说,我如何将Excel文件与程序捆绑在一起? 一旦将它“捆绑”到程序中,我将如何更改对Excel文件的调用?

将excel文件添加到项目中。 转到解决scheme资源pipe理器并右键单击该Excel文件并select属性。 将“复制到输出目录”更改为“始终复制”。 现在这个文件将和你的exe文件在同一个目录下。 您可以使用Reflection.Assembly.GetExecutingAssembly来获取目录。

将文件添加到项目中:

右键单击项目>添加>现有项目>您的Excel文件.xls

要在build中包含文件:

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

以下是获取Excel文件path的代码:

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

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

修改后的用户评论

1)首先创build一个设置(命名为MyExcelFile )来保存您的Excel文件的名称和path。

创建设置

2)现在你可以使用My.Settings.MyExcelFile引用你的Excel文件path。

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 

我想iam不是真的懂得你的意思,但是如果你需要在应用程序中单击打开excel文件,而不想写出excel文件的path(可能是因为你想让你的应用程序可移植),所以答案是至

  1. 将excel文件放在项目文件夹的任何位置
  2. 添加现有的项目( *.* filter )并selectexcel文件
  3. 更改excel文件构build操作的属性:resource复制到输出目录:始终复制
  4. 打开解决scheme的属性,然后单击资源拖动文件并将其放下
  5. 使用( using system.reflectionusing system.iousing system.resources

    然后像这样写代码

     string sPath = Path.GetTempFileName(); File.WriteAllBytes(sPath, Properties.Resources.excel File name here); 

然后把这个( spath )作为你的path使用,然后你可以用excel文件改变项目的位置,它仍然可以工作而不需要写一个固定的path