吧excel中的數據写到文本文件的例子,修改一下可以成为導入數據庫表的,自己动动手
public
XlsApp,XlsSheet,XlsWBk : Variant;
procedure TForm1.Button2Click(Sender: TObject);
var
I,J : integer;
TxtFile : TextFile;
TmpString : String;
begin
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open('c:\my documents\book3.xls'); AssignFile(TxtFile,'C:\My Documents\Test.txt');
Rewrite(TxtFile);
try
for I := 3 to 21 do
begin
TmpString := '';
for J := 1 to 5 do
begin
TmpString := TmpString + XlsSheet.ActiveSheet.Cells[I,J].Text + '|';
end;
Writeln(TxtFile,Tmpstring);
end;
finally
CloseFile(TxtFile);
end;
XlsApp.Visible := true;
except
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;
end;
public
XlsApp,XlsSheet,XlsWBk : Variant;
procedure TForm1.Button2Click(Sender: TObject);
var
I,J : integer;
TxtFile : TextFile;
TmpString : String;
begin
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open('c:\my documents\book3.xls'); AssignFile(TxtFile,'C:\My Documents\Test.txt');
Rewrite(TxtFile);
try
for I := 3 to 21 do
begin
TmpString := '';
for J := 1 to 5 do
begin
TmpString := TmpString + XlsSheet.ActiveSheet.Cells[I,J].Text + '|';
end;
Writeln(TxtFile,Tmpstring);
end;
finally
CloseFile(TxtFile);
end;
XlsApp.Visible := true;
except
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;
end;
我就是根據你這個列子作的,可它老報錯(OLE ERROR 800A03EC),請幫我看看!
代碼:
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open('F:\ima.xls');
AssignFile(TxtFile,'F:\Test.txt');
Rewrite(TxtFile);
try
for a := 0 to 100 do
begin
TmpString := '';
for b := 1 to 6 do
begin
TmpString := XlsSheet.ActiveSheet.Cells[a,b].Text;
adodataset1.close;
adodataset1.CommandText := 'select * from ima_file';
adodataset1.Open;
adodataset1.Insert;
case b of
1: adodataset1.FieldValues['ima01'] := TmpString;
2: adodataset1.FieldValues['ima02'] := TmpString;
3: adodataset1.FieldValues['ima03'] := TmpString;
4: adodataset1.FieldValues['ima04'] := TmpString;
5: adodataset1.FieldValues['ima05'] := TmpString;
6: adodataset1.FieldValues['ima06'] := TmpString;
end;
adodataset1.Post;
end;
Writeln(TxtFile,Tmpstring);
end;
finally
CloseFile(TxtFile);
end;
XlsApp.Visible := true;
except
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;
var
XlsApp,XlsSheet: Variant;
I,J,k,Row,Col,sRow,sCol: integer;
ExcelFile: string;
TmpString: String;
begin
ExcelFile := Trim(Edit1.Text);//要打开的EXCEL文件路径加文件名:
Row := strtoint(Edit4.Text); //the total Rows
Col := strtoint(Edit5.Text); //the total Columns
sRow := strtoint(Edit2.Text); //the start of Row
sCol := strtoint(Edit3.Text); //the start of Column
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open(ExcelFile);
for I := sRow to (sRow + Row) - 1 do //from the start row to the end row
begin
k := 0; //the item of the field
TmpString := '';
Table1.open;
Table1.Append;
for J := sCol to (sCol + Col) - 1 do //from the start column to the end column
begin
TmpString := XlsSheet.ActiveSheet.Cells[I,J].Text;
Table1.Fields[k].AsString := TmpString;
k := k + 1;
end;
Table1.Post;
end;
XlsApp.Visible := true;
except
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;
Application.MessageBox('EXCEL导入数据库成功','提示',mb_OK + MB_DEFBUTTON1);
end;
begin
TmpString := XlsSheet.ActiveSheet.Cells[a,b].Text;
adodataset1.close;
adodataset1.CommandText := 'select * from ima_file';
adodataset1.Open;
adodataset1.Insert;
case b of
1: adodataset1.FieldValues['ima01'] := TmpString;
2: adodataset1.FieldValues['ima02'] := TmpString;
3: adodataset1.FieldValues['ima03'] := TmpString;
4: adodataset1.FieldValues['ima04'] := TmpString;
5: adodataset1.FieldValues['ima05'] := TmpString;
6: adodataset1.FieldValues['ima06'] := TmpString;
end;
adodataset1.Post;
end;
这一段有问题
strline : string;
try
if VarIsEmpty(XlsApp) then
XlsApp := CreateOleObject('Excel.Application');
XlsSheet := XlsApp.workbooks.open('F:\ima.xls');
AssignFile(TxtFile,'F:\Test.txt');
Rewrite(TxtFile);
try
for a := 0 to 100 do
begin
TmpString := '';
strline :='';
adodataset1.close;
adodataset1.CommandText := 'select * from ima_file';
adodataset1.Open;
adodataset1.Insert; for b := 1 to 6 do
begin
TmpString := XlsSheet.ActiveSheet.Cells[a,b].Text;
case b of
1: adodataset1.FieldValues['ima01'] := TmpString;
2: adodataset1.FieldValues['ima02'] := TmpString;
3: adodataset1.FieldValues['ima03'] := TmpString;
4: adodataset1.FieldValues['ima04'] := TmpString;
5: adodataset1.FieldValues['ima05'] := TmpString;
6: adodataset1.FieldValues['ima06'] := TmpString;
end;
if b <> 1 then
strline := strline + '|' + tmpstring
else
strline := tmpstring;
end;
adodataset1.Post;
Writeln(TxtFile,Tmpstring);
end;
finally
CloseFile(TxtFile);
end;
XlsApp.Visible := true;
except
XlsSheet.close;
XlsApp.Application.quit;
XlsApp := Unassigned;
XlsSheet := Unassigned;
end;