跪求:取当前已打开的excel文档的路径。(50分)

  • 主题发起人 主题发起人 kaiery
  • 开始时间 开始时间
K

kaiery

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个按钮在excel工具栏里,现在需要对当前打开的excel文档取路径+文件名,我试了几种取路径、文件名的函数都不是我想要的结果,比如:我打开d:/111.xls,点击按钮,要求获取到的路径是:d:/111.xls.但是取出来的是:c:/documents and setting/admin/my documents/microsoft excel ,和 C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE
为什么不能取到:d:/111.xls
麻烦哪位高人[详细的]指点一下。
 
把你取路径的代码贴出来
 
with Self.FHostApp as ExcelApplication do
begin
if Workbooks.Count = 0 then
begin
Workbooks.Add(EmptyParam,0);
end; // if
with ActiveWorkbook.ActiveSheet as ExcelWorksheet do
begin
showmessage(ExpandFileName(Workbooks.Application.Workbooks.Application.Caption));//这句取到了:“c:/documents and setting/admin/my documents/microsoft excel - 111.xls”,其中打开的文档名是111.xls ,所以可以找到文件名,需要找到路径

showmessage(Extractfilepath(application.Path[0]));//这句取到了:“C:/Program Files/Microsoft Office/OFFICE11/”

ShowMessage(GetModuleName(hInstance));//这句取到了 我的dll文件了,就是加载COM按钮的dll.
end; // with
end; // with
 
既然是当前打开的xls文件,那么也就是系统里最后一个打开的xls文件,因为系统里每打开一个文件,都会有一个记录,在注册表里面。
不知道楼主明白我的意思了没有
通过查找注册表,达到你的目的。
 
如果你的系统里装的是office 2003,就有以下键:
HKEY_CURRENT_USER/Software/Microsoft/Office/11.0/Excel/Recent Files
里面的file1就是最后一个打开的,如果你正在使用,也就是你现在正打开的的这个文件
 
to:ctaxp
感谢!注册表里有我当前打开文档的路径信息,但是不是office 2003的版本,系统里如何查找? 毕竟要做的通用一些。。 麻烦指点一下
 
to:ctaxp
好象还是不能达到我的要求啊,因为你说的那方法,的确可以找到绝对路径,但是必须要先关闭文档,注册表里才会有刚才关闭文档的路径信息。 我现在需要不关闭文档,在打开状态下,直接读取出文档的路径,对文档进行操作。。
 
不太懂楼主你既然不知道文件的路径,又是怎么样打开它的呢?
 
楼上:
我的项目需要这样啊 ,直接双击打开文档,再获取该文档绝对路径
 
后退
顶部