如果乱码,你的FileName这个变量是如何取得值的呢?
在指定目录搜索出这个乱码文件名,应该也可以打开。
我用以下这段代码,搜索了指定目录'D:\tmp'下面的乱码excel文件(嬂%腶.xls)并打开,测试通过。不知道是不是lz所需要的东西
procedure TForm1.Button1Click(Sender: TObject);
var
SSearchRec: TSearchRec; //FSearchRec,
StationResult: integer; //FindResult,
FPath,FName: string; //路径,短文件名
ExcelApp,WorkBook: Variant;
begin
//调试用路径
FPath:='D:\tmp';
StationResult:=findfirst(FPath+'\*.*',faDirectory,SSearchRec); //搜索取得所有文件名
ExcelApp := CreateOleObject('Excel.Application');
while StationResult=0 do
begin
FName:=SSearchRec.Name;
if
RightStr (FName,4)<>'.xls' then //如果不是excel文件,则继续寻找下一个
begin
StationResult:=FindNext(SSearchRec);
continue;
end;
WorkBook := ExcelApp.WorkBooks.Open(FPath+'\'+FName);
ExcelApp.Visible := True;
StationResult:=FindNext(SSearchRec);
end;
end;