我创建了一个包含多种表单的Visual Basic项目。在项目中,我将信息写入excel文件,我引用excel文件所在的本地(C :)驱动器的位置。通过引用我的意思是,我打开一个excel实例十提供我的硬盘驱动器上的source =本地路径。我的问题是如何将excel文件附加到项目中,因此我不必引用本地位置并可以在另一台计算机上运行该程序。换句话说,如何将excel文件与程序捆绑在一起?如果我拥有它,我将如何更改对excel文件的调用"捆绑"该计划?
答案 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文件的名称和路径。
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便携式)所以答案是
*.* filter
)并选择Excel文件使用(using system.reflection
& using system.io
& using system.resources
)
然后编写像这样的代码
string sPath = Path.GetTempFileName();
File.WriteAllBytes(sPath, Properties.Resources.excel File name here);
然后把它(spath
)用作你的路径,这样你就可以用里面的excel文件改变项目位置,它仍然可以正常工作而不用为它写一个常量路径