吧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;

解决方案 »

  1.   

    cobi(我是小新):
    我就是根據你這個列子作的,可它老報錯(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;
      

  2.   

    edit1中是要打开的EXCEL文件路径加文件名:procedure TForm1.BitBtn5Click(Sender: TObject);
    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;
      

  3.   

    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;
    这一段有问题
      

  4.   

    程序应该修改成这样,至于你说的出错信息,请指出出错的地方:var
      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;