27.03.2009, 00:34
|
|
Гуру
|
|
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
|
|
Вот вам пример простенькой эмуляции эксельной книги:
Код:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ComCtrls, Grids;
type
TForm4 = class(TForm)
XLS: TADOConnection;
PageControl1: TPageControl;
procedure FormCreate(Sender: TObject);
private
Grids: Array of TStringGrid;
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
Var BookSheet: TStringList;
Sheet: TTabSheet;
SheetData: TAdoQuery;
SheetNo,FieldNo,RecNo: Integer;
begin
XLS.Connected := True;
BookSheet := TStringList.Create;
XLS.GetTableNames(BookSheet,False);
SetLength(Grids, 0);
for SheetNo := 0 to BookSheet.Count-1
do begin
Sheet := TTabSheet.Create(Self);
Sheet.PageControl := PageControl1;
Sheet.Caption := Copy(BookSheet.Strings[SheetNo],1,Length(BookSheet.Strings[SheetNo])-1);
SetLength(Grids, Length(Grids)+1);
Grids[High(Grids)] := TStringGrid.Create(Self);
Grids[High(Grids)].Parent := Sheet;
Grids[High(Grids)].Align := alClient;
Grids[High(Grids)].DefaultRowHeight := 18;
Grids[High(Grids)].DefaultColWidth := 64;
Grids[High(Grids)].FixedCols := 0;
Grids[High(Grids)].FixedRows := 1;
SheetData := TAdoQuery.Create(nil);
SheetData.Connection := XLS;
SheetData.SQL.Text := Format('select * from [%s]',[BookSheet.Strings[SheetNo]]);
SheetData.Open;
Grids[High(Grids)].ColCount := SheetData.FieldCount;
Grids[High(Grids)].RowCount := SheetData.RecordCount;
for FieldNo := 0 to SheetData.FieldCount-1
do Grids[High(Grids)].Cols[FieldNo].Text := SheetData.Fields[FieldNo].FieldName;
for RecNo := 0 to SheetData.RecordCount-1
do begin
for FieldNo := 0 to SheetData.FieldCount-1
do Grids[High(Grids)].Cells[FieldNo,RecNo] := VarToStr(SheetData.Fields[FieldNo].Value);
SheetData.Next;
end;
end;
end;
end.
и dfm-файл
Код:
object Form4: TForm4
Left = 0
Top = 0
Caption = 'Form4'
ClientHeight = 302
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object PageControl1: TPageControl
Left = 0
Top = 0
Width = 635
Height = 302
Align = alClient
TabOrder = 0
TabPosition = tpBottom
ExplicitLeft = 8
ExplicitTop = 8
ExplicitWidth = 393
ExplicitHeight = 286
end
object XLS: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=E:\DBas' +
'e\Delphi\TelTrafic\Example\1.xls;Extended Properties="Excel 8.0;' +
'HDR=Yes";Persist Security Info=True'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
Left = 432
Top = 16
end
end
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|