开始学习delphi
想做一个小demo
1.从保存的excel中读取到一条一条记录(可以显示在窗体)
2.把读到的记录保存到文本中

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls, StdCtrls;type
      TfrmMain = class(TForm)
        btnCreateOLE: TButton;
        btnFreeOLE: TButton;
        btnGetData: TButton;
        lstbxSheetData: TListBox;
        procedure btnCreateOLEClick(Sender: TObject);
        procedure btnFreeOLEClick(Sender: TObject);
        procedure btnGetDataClick(Sender: TObject);
      private
        MsExcel: Variant;
        MsExcelWorkBook: Variant;
        MsExcelWorkSheet: Variant;
      public
        { Public declarations }
      end;var
      frmMain: TfrmMain;implementationuses ComObj;{$R *.DFM}procedure TfrmMain.btnCreateOLEClick(Sender: TObject);
    var
      i: integer;
    begin
      try
        MsExcel := CreateOleObject('Excel.Application.8');
        MsExcelWorkBook := MsExcel.WorkBooks.Add;
        MsExcelWorkSheet := MsExcel.WorkSheets.Add;
      except
        MessageDlg('Can nott creat Excel 97 !', mtWarning, [mbOK], 0);
        exit;
      end;  MsExcel.Visible := True;
      for i := 1 to 10 do
        MsExcelWorkSheet.Range['A' + IntToStr(i)].Value := i * i;  try
        MsExcelWorkSheet.SaveAs(ExtractFilePath(Application.EXEName) + 'TEMP.XLS');
      except
        MessageDlg('Can not save as TEMP.XLS!', mtInformation, [mbOK], 0);
      end;
    end;procedure TfrmMain.btnFreeOLEClick(Sender: TObject);
    begin
      MsExcel.Quit;
    end;procedure TfrmMain.btnGetDataClick(Sender: TObject);
    var
      i: integer;
    begin
      lstbxSheetData.Items.Clear;
      try
        for i := 1 to 10 do
          lstbxSheetData.Items.Add(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value);  except
        MessageDlg('Can not open Excel Sheet!', mtWarning, [mbOK], 0);
      end;end;end.
      

  2.   

    读取excel中记录的过程需要调用两个单元文件Excel2000,ComObj(当然Excel的单元文件看版本来定),如果是存储在容器中那么还需要用到OleServer,我这样取过一次:
    先设两个变体类型的变量:ExcelApp,ExcelSheet : Variant;
    主程序中可以通过opendialog来选取Excel文件,然后创建
             ExcelApp:=CreateOleObject('Excel.Application');
             Excelapp.WorkBooks.Open(opendialog1.FileName);
    这样就可以得到字符串型的变量
             string1 := ExcelApp.WorkSheets[Excel表的页].cells[Excel表的行,Excel表的列];至于存储到文本中很简单就是调用savetofile()方法就可以了,如果是有多个可以先用一个tstringlist的变量利用Add()方法存起来再一起存。
      

  3.   

    请问怎么知道excel表格中总共有多少项!就是几个格子里面有值!
      

  4.   

    请问如何知道Excel里面有多少页,每个页里面有多少行,每行有多少列有值!
      

  5.   

    建议你直接调用ExcelApp.savetofile就可以了,不用那么麻烦的:)