|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Открытие следующего листа..... помогите пожалуйста!
Создал программу которая открывает в StringGrid,е Excelевский файл, вроде всё работает, НО, открытый файл содержит в себе около 6 листов, однако в стринге открывается самый первый и всё.
Подскажите пожалуйста процедуру чтоб можно было по клику кнопки открывать следующий лист, а ещё лучше чтоб из экселя бралось ещё и название листа и выводилось куда нибудь в Edit Очень прошу, помогите, диплом горит.... |
#2
|
||||
|
||||
Вот вам пример простенькой эмуляции эксельной книги:
Код:
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. Код:
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 Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |