procedure TFrmImportExcel.FlatButton5Click(Sender: TObject); var i,j: integer; XLApp,sheet:Variant; F: File; AllFileName ,FilePath ,FileName ,FileExt :string; FullNamestr ,SurNameStr,GivenNameStr,DateOfBidhStr,NationalityStr :string; begin if FlatSpinEditInteger1.Value <=0 then begin MsShow('请输入要导入的记录数!'); FlatSpinEditInteger1.SetFocus; Exit; end; if BeginRow.Value <=0 then begin MsShow('请输入开始导入的行号!'); BeginRow.SetFocus; Exit; end; AllFileName :=''; AllFileName :=FileListBox1.FileName; try xlApp:=CreateOleObject('Excel.Application'); except xlApp:=UnAssigned; MsShow('创建Excel实例失败,请重新安装Office 2000!'); Exit; end; try xlApp.Workbooks.Open(AllFileName); except MsShow ('打开Excel文档失败!'); xlApp.Quit; xlApp:=UnAssigned; Exit; end; Sheet:=xlApp.WorkBooks[1].WorkSheets[1]; //连接Sheet i :=BeginRow.Value; j :=FlatSpinEditInteger1.Value+BeginRow.Value ; try while i<=j do begin if Trim(Sheet.Cells.Item[i,3])<>'' then begin GroupD.Insert; GroupD.FieldByName('PassportNo').value :=Sheet.Cells.Item[i,3] GroupD.Post; end ; Inc(i); end; finally Msshow('数据导入完毕!'); end; try xlApp.Quit; Sheet :=Unassigned ; xlApp:=Unassigned; except end; AssignFile(F,AllFileName); // 将C:\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。 Rename(F,FilePath+'已导_'+FileName);end;
应该是这样的 (1)用RzOpenDialog找到文件, OpenDialog1.InitialDir := ExtractFileDir(ParamStr(0));//路径 OpenDialog1.Filter:='(*.txt)|*.txt';//只读txt格式的 if OpenDialog1.Execute then begin //做你想做的事,例如读文件内容 end; (2)用读取文件方式得到txt文件的内容。var fFile: TextFile; sStr: string; sPathName: string; slList: TStringList; begin slList := TStringList.Create; sPathName := "文件路径及名字"; if FileExists(sPathName)then begin AssignFile(fFile,sPathName); reset(fFile);{打开并读取文件 F } while not Eof(fFile) do begin readln(fFile,sStr); if Trim(sStr) <> '' then slList .Add(sStr); end; closefile(fFile); end; FreeAndNil(slList);(3)接下来的事看你怎么处理了
RzOpenDialog1.Execute;
RzOpenDialog1.FileName;
但是光知道打开没用,拿EXCEL来说,先通过RzOpenDialog1打开文件,然后读出EXCEL里面的“序列号”数据,这里怎么读,我不知道怎么写代码!!!就是不知道“怎么取读”。大哥帮帮忙
这跟RzOpenDialog有什么关系,打开excel文件,得到文件路径,然后动态赋值给adoconnecton的connectionstring就可以了
怎么导可以用ado连EXCEL,循环插入就行了.
现在就是这个路径的问题,我怎么用这个RzOpenDialog选择文件的路径和ADO连接啊??我只会直接在ADOConnection里面选择EXCEL文件,不会用RzOpenDialog选了自后和ADOConnection关联起来!!怎么写代码连接呢??是直接定义一个函数还是直接在按钮里面写呢???还是直接在ADOConnection属性里面设置呢???
var
i,j: integer;
XLApp,sheet:Variant;
F: File;
AllFileName ,FilePath ,FileName ,FileExt :string;
FullNamestr ,SurNameStr,GivenNameStr,DateOfBidhStr,NationalityStr :string;
begin
if FlatSpinEditInteger1.Value <=0 then
begin
MsShow('请输入要导入的记录数!');
FlatSpinEditInteger1.SetFocus;
Exit;
end;
if BeginRow.Value <=0 then
begin
MsShow('请输入开始导入的行号!');
BeginRow.SetFocus;
Exit;
end; AllFileName :=''; AllFileName :=FileListBox1.FileName; try
xlApp:=CreateOleObject('Excel.Application');
except
xlApp:=UnAssigned;
MsShow('创建Excel实例失败,请重新安装Office 2000!');
Exit;
end; try
xlApp.Workbooks.Open(AllFileName);
except
MsShow ('打开Excel文档失败!');
xlApp.Quit;
xlApp:=UnAssigned;
Exit;
end; Sheet:=xlApp.WorkBooks[1].WorkSheets[1]; //连接Sheet
i :=BeginRow.Value;
j :=FlatSpinEditInteger1.Value+BeginRow.Value ;
try
while i<=j do
begin
if Trim(Sheet.Cells.Item[i,3])<>'' then
begin
GroupD.Insert;
GroupD.FieldByName('PassportNo').value :=Sheet.Cells.Item[i,3]
GroupD.Post;
end ;
Inc(i);
end;
finally
Msshow('数据导入完毕!');
end; try
xlApp.Quit;
Sheet :=Unassigned ;
xlApp:=Unassigned;
except end;
AssignFile(F,AllFileName); // 将C:\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Rename(F,FilePath+'已导_'+FileName);end;
(1)用RzOpenDialog找到文件,
OpenDialog1.InitialDir := ExtractFileDir(ParamStr(0));//路径
OpenDialog1.Filter:='(*.txt)|*.txt';//只读txt格式的
if OpenDialog1.Execute then
begin
//做你想做的事,例如读文件内容
end;
(2)用读取文件方式得到txt文件的内容。var
fFile: TextFile;
sStr: string;
sPathName: string;
slList: TStringList;
begin
slList := TStringList.Create;
sPathName := "文件路径及名字";
if FileExists(sPathName)then
begin
AssignFile(fFile,sPathName);
reset(fFile);{打开并读取文件 F }
while not Eof(fFile) do
begin
readln(fFile,sStr);
if Trim(sStr) <> '' then slList .Add(sStr);
end;
closefile(fFile);
end;
FreeAndNil(slList);(3)接下来的事看你怎么处理了