附加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(可能是因为你想让你的应用程序可移植),所以答案是至
- 将excel文件放在项目文件夹的任何位置
- 添加现有的项目(
*.* filter
)并selectexcel文件 - 更改excel文件构build操作的属性:resource复制到输出目录:始终复制
- 打开解决scheme的属性,然后单击资源拖动文件并将其放下
-
使用(
using system.reflection
&using system.io
&using system.resources
)然后像这样写代码
string sPath = Path.GetTempFileName(); File.WriteAllBytes(sPath, Properties.Resources.excel File name here);
然后把这个( spath
)作为你的path使用,然后你可以用excel文件改变项目的位置,它仍然可以工作而不需要写一个固定的path