在Delphi 5中embeddedExcel文件
我想embedded一个Excel文件到我的Delphi 5应用程序,所以我可以避免我的用户只是删除该文件意外。
使用embedded文件,我使用Save对话框在磁盘上创build它,然后用Excel := CreateOleObject('Excel.Application');
打开它Excel := CreateOleObject('Excel.Application');
方法。 我已经看到如何加载资源,使用THandles的例子,但我似乎并没有得到它与Excel.WorkBooks.Open(EmbeddedExcelFile);
。
你有没有做过这样的事情? 你会怎么做?
谢谢!
您必须将该文件包含为资源。 假设你有一个blah.xls
用下面的内容创build一个blah.rc
文件
blah RCDATA blah.xls
用资源编译器将其编译为blah.res
将RES文件embedded到可执行文件中
{$R 'blah.res'}
在您的应用程序代码中,解压缩文件并使用此代码运行它
procedure ExtractAndRun(resourceID:string; resourceFn:string); var resourceStream: TResourceStream; fileStream: TFileStream; tempPath: string; fullFileName: string; begin tempPath:=GetTempDir; FullFilename:=TempPath+'\'+resourceFN; if not FileExists(FullFilename) then begin resourceStream := TResourceStream.Create(hInstance, resourceID, RT_RCDATA); try fileStream := TFileStream.Create(FullFilename, fmCreate); try fileStream.CopyFrom(resourceStream, 0); finally fileStream.Free; end; finally resourceStream.Free; end; end; ShellExecute(0,'open', pchar(FullFilename), nil, nil, SW_SHOWNORMAL); end;
您将不得不在您的使用条款中添加ShellApi
也许你会需要这个GetTempDir函数
function GetTempDir: string; var Buffer: array[0..MAX_PATH] of char; begin GetTempPath(SizeOf(Buffer) - 1, Buffer); result := StrPas(Buffer); end;
像这样调用函数
extractAndRun('blah','blah.xls');
我很确定它不会工作。 您必须将文件保存在临时文件夹中,然后进行修改,然后执行任何您想要的操作。