Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2007, 13:32   #1
lin
Пользователь
 
Регистрация: 08.04.2007
Сообщений: 10
По умолчанию Експорт из БД в Еxcell

Как експортировать данние з БД в Ексель?
Исал по форуму, но ничего ненашел..
lin вне форума Ответить с цитированием
Старый 10.04.2007, 15:09   #2
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

вот, посмотри процедуру из моего старинного приложения
Код:
procedure TMainUnit.ReportExcelClick(Sender: TObject);
var XLApp, Sheet, Column : Variant;
    index,i,i1,i2,i3,i4,i5 : integer;
const
    xlCenter = -4108;
begin
   frmProgress.Position := poMainFormCenter;
   MainUnit.Enabled := False;
   frmProgress.ProgBar.Max := DataMod.Books.RecordCount;
   
   XLApp := CreateOleObject('Excel.Application');
   //Добавляем новую книгу
   XLApp.Workbooks.add(-4167);
   //Делаем таблицу невидимой
   XLApp.ActiveWindow.DisplayGridlines:=False;
   XLApp.workbooks[1].WorkSheets[1].Name := Tables.ComboBox1.Text;
   Column := XLApp.workbooks[1].WorkSheets[Tables.ComboBox1.Text].Columns;
   Column.Columns[1].ColumnWidth := 50;
   Column.Columns[2].ColumnWidth := 20;
   Column.Columns[3].ColumnWidth := 10;
   //Меням шрифт
   for i4 := 1 to 4 do
    for i5 := 1 to 3 do
   Column.Columns[i5].Font.Name := 'Courier New';
   Column := XLApp.Workbooks[1].Worksheets[Tables.ComboBox1.Text].Rows;
   Column.Rows[1].Font.Bold := True;
   //Column.Rows[1].Font.Bold := True;
  // Column.Rows[1].Font.Color := clRed;
   //Column.Rows[1].Font.Size := 14;
   Sheet := XLApp.Workbooks[1].Worksheets[Tables.ComboBox1.Text];
   //Sheet.Cells[1,1]:=Tables.ComboBox1.Text;
   Sheet.Cells[1,1]:='Название фильма';
   Sheet.Cells[1,2]:='Жанр';
   Sheet.Cells[1,3]:='CD';
   //Сортируем
   If MainUnit.NoSort.Checked = True then
   DataMod.Books.Sort := '';
   If MainUnit.SortNameFilm.Checked = True then
   DataMod.Books.Sort := 'Название ASC';
   frmProgress.Show;
   //Начинае с 2-й строки
   index:=2;
   DataMod.Books.First;
   //Делаем обрисовку
   for i1:= 1 to 4 do
     for i2:= 1 to 1 do
      XLApp.Cells[2,i2].Borders[i1].LineStyle := 1;
   //Записываем данные из базы в таблицу
   for i := 0 to DataMod.Books.RecordCount-1 do
    begin
    Sheet.Cells[index,1]:=DataMod.Books.Fields.Fields[1].AsString;
    Sheet.Cells[index,2]:=DataMod.Books.Fields.Fields[3].AsString;
    Sheet.Cells[index,3]:=DataMod.Books.Fields.Fields[4].AsString;
    inc(index);
    frmProgress.ProgBar.Position := index;
    DataMod.Books.Next;
    for i2:= 1 to 4 do
     for i3:= 1 to 3 do
      XLApp.Cells[index-1,i3].Borders[i2].LineStyle :=3;
     //Выделяем по центру
      XLApp.Workbooks[1].Worksheets[Tables.ComboBox1.Text].Rows[1].HorizontalAlignment := xlCenter;
      XLApp.Workbooks[1].Worksheets[Tables.ComboBox1.Text].Columns[index-1].HorizontalAlignment := xlCenter;
      //XLApp.Workbooks[1].Worksheets[Tables.ComboBox1.Text].Columns[index-2].HorizontalAlignment := xlCenter;
   end;
   xlapp.ActiveSheet.PageSetup.LeftMargin := xlapp.Application.InchesToPoints(0.984251968503937);
   xlapp.ActiveSheet.PageSetup.RightMargin := XLApp.Application.InchesToPoints(0.78740157480315);
   xlapp.ActiveSheet.PageSetup.TopMargin := XLApp.Application.InchesToPoints(0.393700787401575);
   xlapp.ActiveSheet.PageSetup.BottomMargin := XLApp.Application.InchesToPoints(0.590551181102362);
   xlapp.ActiveSheet.PageSetup.HeaderMargin := XLApp.Application.InchesToPoints(0.511811023622047);
   xlapp.ActiveSheet.PageSetup.FooterMargin := XLApp.Application.InchesToPoints(0.511811023622047);
   XLApp.Visible := True;
  // XLApp.ActiveWindow.SelectedSheets.PrintPreview;

  frmProgress.Close;
  DataMod.Books.First;
  MainUnit.Enabled := True;
да и не забудь в uses добавить модуль comobj
dron-s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Експорт из базы. Oleg_teacher БД в Delphi 0 24.06.2008 13:25