Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.03.2009, 20:57
Priest Priest вне форума
Прохожий
 
Регистрация: 13.03.2009
Сообщения: 2
Репутация: 10
По умолчанию Открытие следующего листа..... помогите пожалуйста!

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


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:07.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter