Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как из DBGrid экспортировать в Word и Excel? 
V
    Опции темы
Riddik
Дата 1.6.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Нужно из DBGrid вывести в Word, и желательно в Excel. Лучше сразу в Word.

Причём очень желательно грид прерывать в ворде  заголовками.

Это всё вообще возможно?

Добавлено через 3 минуты и 17 секунд
Можно даже миновать грид, сразу запросами накидать табличке в Ворд. Только как?
PM MAIL   Вверх
Данкинг
Дата 1.6.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Возможно, если поюзать поиск на форуме или в DRKB на предмет работы с WORD и/или EXCEL. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riddik
Дата 1.6.2008, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Извините за тупость, что такое DRKB?
PM MAIL   Вверх
Данкинг
Дата 1.6.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Riddik @ 1.6.2008,  19:07)
Извините за тупость, что такое DRKB?

тык


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riddik
Дата 1.6.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Благодарю smile 


А в поиске по форуму, кстати, ничего нет, лишь одна тема, где человек был недоволен скоростью. С неё ничего не понятно.
PM MAIL   Вверх
Данкинг
Дата 1.6.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Riddik @  1.6.2008,  21:47 Найти цитируемый пост)
А в поиске по форуму, кстати, ничего нет, лишь одна тема, где человек был недоволен скоростью. С неё ничего не понятно. 

тык


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riddik
Дата 1.6.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Спасибо! 
PM MAIL   Вверх
Riddik
Дата 2.6.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



И всё же никак!

Искал ещё и в других местах - всё никак! Про DBGrid ничего! 
Куча примеров со StringGrid, но там совсем другие методы, свойства и т.д., не работает с DBGrid!

Я всё сделал с Word'ом, осталось добавить табличку и всё! Только как таблицу из DBGrid втащить в word - не пойму!

Помогите пожауйста!
PM MAIL   Вверх
Zmitro
Дата 3.6.2008, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 19.3.2008

Репутация: 1
Всего: 1



вот вам еще один тык
PM MAIL   Вверх
Beltar
Дата 3.6.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



Вопрос неправильный. Сетка данные не содержит, выводи их из набора данных, работа с Excel и Word на этом форуме подробно описана и пришпилена.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Akella
Дата 3.6.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Вам сюда
http://forum.vingrad.ru/forum/delphi-activ...-corba-ole.html

там точно есть то, что ты хочешь
PM MAIL   Вверх
Riddik
Дата 3.6.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Огромное спасибо, сейчас буду делать - спасибо!
PM MAIL   Вверх
Riddik
Дата 3.6.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Короче фиг с ним. Буду выводить через ADOQuery, работы в разы теперь больше  smile 

Из DBGrid можно выводить, только я не нашёл как. Перелопатил все ссылки- нету! Чего только там нет, но этого нет.

Код

DBGrid1.Fields[0].Text;


Этот код посылает текст из первой или выбранной пользователем строки. Т.е. я могу лишь выбрать поля этой строки для вывода данных, меняю 0 на нужный номер поля но как, блин, переключаться на следующую строку - уже всю бошку сломал...
PM MAIL   Вверх
Beltar
Дата 5.6.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



Цитата

Из DBGrid можно выводить, только я не нашёл как.


На практике обычно нужно строить отчет, а показывать сетку или нет это опционально. И какая хрен разница обращаться напрямую Query.FieldByName, или вытаскивать это же поле, через какие-то Fields?
И я бы вообще на время построения сетку залочил нафиг, т. к. ткнуть в нее мышкой и тут же сместиться курсор в наборе данных.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
puncher
Дата 7.6.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.12.2007

Репутация: нет
Всего: нет



Примерно так: (пример из рабочей программы, адаптировать особо не стал)
Код

  Screen.Cursor := crHourGlass;
  nCol := DBGrid.FieldCount;  // колонок
  nRow := DBGrid.DataSource.DataSet.RecordCount;  // строк
// Запись, на которой пользователь останавливается в DBGrid
  CurrentBookmark :=DBGrid.DataSource.DataSet.GetBookmark; // запомнить позицию
// Запретим мерцание грида в процессе работы отчёта
  DBGrid.DataSource.DataSet.DisableControls;
  i := 0;
  for CurrCol := 0 to nCol - 1 do
    if DBGrid.Columns[CurrCol].Width>0 then // есть на экране
      Inc(i);
  aDataWidth := i;
  aDataXL:=VarArrayCreate([1, nRow+1, 1, aDataWidth], varVariant); // +1 для заголовков
  i := 1;
  for CurrCol := 0 to nCol - 1 do
    if DBGrid.Columns[CurrCol].Width>0 then begin // есть на экране
      aDataXL[1, i] := DBGrid.Columns[CurrCol].Title.Caption; // вывожу заголовки
      ...
      Inc(i);
    end;
  DM.ADOQuery.First;
  CurrRow := 2;
  while not DM.ADOQuery.Eof do begin // по строкам
    i := 1;
    for CurrCol := 0 to nCol - 1 do
      if DBGrid.Columns[CurrCol].Width>0 then begin // есть на экране
        aDataXL[CurrRow, i] := DM.ADOQuery.Fields[CurrCol].AsString;
        Inc(i);
      end; // есть на экране
    DM.ADOQuery.Next;
    Inc(CurrRow);
  end; // по строкам
  DBGrid.DataSource.DataSet.GotoBookmark(CurrentBookmark);
  DBGrid.DataSource.DataSet.FreeBookmark(CurrentBookmark);
  DBGrid.DataSource.DataSet.EnableControls;
  ExcelApp.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT);
  ExcelBook.ConnectTo(ExcelApp.ActiveWorkbook);
  ExcelApp.Visible[LOCALE_USER_DEFAULT] := False;
  ExcelApp.ScreenUpdating[LOCALE_USER_DEFAULT] := False;
  ExcelApp.Calculation[LOCALE_USER_DEFAULT] := xlManual;
  ExcelApp.ErrorCheckingOptions.BackgroundChecking := False;
  ExcelApp.ErrorCheckingOptions.NumberAsText := False;
  ExcelApp.ErrorCheckingOptions.InconsistentFormula := False;
  XL_Sheet := ExcelBook.Worksheets.Item[1] as ExcelXP.ExcelWorksheet;
  XL_Sheet.Activate(LOCALE_USER_DEFAULT);
  c1:=XL_Sheet.Cells.Item[1,1];
  c2:=XL_Sheet.Cells.Item[nRow+1,aDataWidth];
  XL_Range:=XL_Sheet.Range[c1,c2];
  XL_Range.Value2:=aDataXL;
...
  XL_Sheet.Cells.EntireColumn.AutoFit;
  XL_Sheet.Application.Goto_('R1C1',0,LOCALE_USER_DEFAULT);
  XL_Sheet.Cells.AutoFilter(1,EmptyParam,xlAnd,EmptyParam,True);
  Screen.Cursor := crDefault;
  ExcelApp.Visible[LOCALE_USER_DEFAULT] := True;


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.