Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGridEh и импорт в эксель и хтмл, DBGridEhImpExp 
:(
    Опции темы
Garmahis
Дата 2.2.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В библиотеке Ehlib есть модуль DBGridEhImpExp предназначенный для импота данных из грида в эксель хтмл и ещё куда-то. Не могу разобраться как сним работать. Если кто пользовался подскажите!
PM   Вверх
StayAtHome
Дата 9.2.2006, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Домосед
**


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

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



Примерно так:
Код

 SaveDBGridEhToExportFile(TDBGridEhExportAsText,DBGridEh1,'c:\temp\file1.txt',False);
 SaveDBGridEhToExportFile(TDBGridEhExportAsCSV,DBGridEh1,'c:\temp\file.csv',False);
 SaveDBGridEhToExportFile(TDBGridEhExportAsHTML,DBGridEh1,'c:\temp\file1.html',False);
 SaveDBGridEhToExportFile(TDBGridEhExportAsRTF,DBGridEh1,'c:\temp\file1.rtf',False);
 SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1,'c:\temp\file1.xls',False);
 

аналогично есть классы для импорта: TDBGridEhImportAsText и TDBGridEhImportAsVCLDBIF

Если стандартных возможностей DBGridEh по экспорту в XSL тебе покажется мало, то настоятельно рекомендую присмотреться к компоненту FlexCel/ Он позволяет буквально двумя строчками кода сделать экспорт в XSL на основе заранее созданного тобой шаблона -- XLS-файла со специальной разметкой. Наличие MS Excel не требуется. Причем эти шаблоны не зависимы от твоего приложения, т. е. их можно редактировать ПОСЛЕ компиляции. Это может делать как разработчик так и пользователь. smile В общем MUST HAVE если хочется сделать хороший отчет в екселе, а заморачиваться с OLE и т. д. неохота.
Удачи!

ЗЫ. Импорт -- прием чего-то внутрь (данных в программу, товаров -- в страну), экспорт -- передача чего-то наружу (данных из программы, товаров -- из страны). ;)
PM MAIL WWW ICQ YIM   Вверх
delphi_
Дата 12.6.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



сорри за поднятие старой темы...но есть вопрос
как же сие использовать?)
может дать кто пример?буду благодарен
PM MAIL   Вверх
Akella
Дата 13.6.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



а что в папке EhLib нет примеров?
PM MAIL   Вверх
delphi_
Дата 13.6.2007, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



лично у меня-нет
были бы не спрашивал  smile 
PM MAIL   Вверх
delphi_
Дата 13.6.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



все понил,над было в юзес дописать DBGridEhImpExp
забыл про это...
PM MAIL   Вверх
MadCoder
Дата 16.5.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

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



Тема интересная и весьма полезная. Подскажите, как провести именно импорт в эксель, а не просто сохранение в файл. Т.е. чтобы данные открылись сразу в экселе без сохранения в файл.
PM WWW ICQ   Вверх
Frees
Дата 16.5.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(MadCoder @  16.5.2008,  10:11 Найти цитируемый пост)
Т.е. чтобы данные открылись сразу в экселе без сохранения в файл.


как вариант
Код

SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1,'c:\temp\file1.xls',False);
ShellExecute(Handle, 'open', 'c:\temp\file1.xls', nil, nil, SW_SHOWNORMAL); 





--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Vas
Дата 16.5.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

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



Ну дык запоминай имя файла под которым сохраняешь, а потом вызывай shellExecute из модуля ShellApi


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Frees
Дата 16.5.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(MadCoder @  16.5.2008,  10:11 Найти цитируемый пост)
Т.е. чтобы данные открылись сразу в экселе без сохранения в файл.


как вариант
Код

SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1,'c:\temp\file1.xls',False);
ShellExecute(Handle, 'open', 'c:\temp\file1.xls', nil, nil, SW_SHOWNORMAL); 





--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Vas
Дата 16.5.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

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



Вот из примера доработанная процедура, если переменная NeedOpen=true то открываем файл с выбранным пользователем именем:
Код

Procedure TOsnForm.ActionSaveSelectionExecute(Sender: TObject);

var ExpClass:TDBGridEhExportClass;

    Ext:String;

Begin

  if ActiveMDIChild<>nil then

    begin

      SaveDialog1.FileName := ActiveMDIChild.Caption;

      SaveDialog1.InitialDir:=MyDir;

      if (ActiveMDIChild.ActiveControl is TDBGridEh) then

        if SaveDialog1.Execute then

        begin

          case SaveDialog1.FilterIndex of

            1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;

            2: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;

            3: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;

            4: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;

            5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;

          else

            ExpClass := nil; Ext := '';

          end;

          if ExpClass <> nil then

          begin

            if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>

               UpperCase(Ext) then

            SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;

            SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveMDIChild.ActiveControl), SaveDialog1.FileName, True);

            SetPassString('Texotdel','SavePath', ExtractFilePath(SaveDialog1.FileName));

            if NeedOpen then

              ShellExecute(Application.Handle, 'open', PChar(SaveDialog1.FileName), nil, nil, SW_SHOWNORMAL);

          end;

        end;

    end;

End;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
MadCoder
Дата 23.5.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

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



Vas, спасибо за пример!
PM WWW ICQ   Вверх
Михалыч
Дата 23.2.2013, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как сохранить две базы в одном файле?
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1(DBGridEh2),'c:\temp\file1.xls',False);


--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
Vas
Дата 24.2.2013, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

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



Цитата(Михалыч @  23.2.2013,  17:19 Найти цитируемый пост)
Как сохранить две базы в одном файле?
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1(DBGridEh2),'c:\temp\file1.xls',False);

Две таблицы - это еще не две базы. А вообще в таких случаях делают один кросс запрос к таблицам их двух баз и выводят все в один грид, а потом его экспортируют в нужный формат.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Михалыч
Дата 24.2.2013, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vas @  24.2.2013,  08:47 Найти цитируемый пост)
 один кросс запрос к таблицам их двух баз и выводят все в один грид


А по конкретнее , про кросс запрос и вывод в один грид.  Или где почитать?



--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
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.1677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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