Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

Экспорт DBGrig в Excel   Найти похожие ветки 

 
Yermek   (2004-02-13 00:20) [0]

Для экспорта DBGrid в Excel нашел вот это кусок кода, но куда его всавлять и вообще что то не верится мне что это будет работать. Подскажите пожалуста в каком направлении копать надо?

Export_Excel(
// DBGrid из которого производиться экспорт
DBGrid:TDBGrid;
// Дополнительная информация печатаемая вначале документа
Header:String="";
// Дополнительная информация печатаемая в конце документа
footer:String="");


 
raptorus   (2004-02-14 09:44) [1]

Вот готовый код по экспортированию DBGRid в Excel или Clipboard

// ЗАМЕЧАНИЕ: этот метод должен включать COMObj, Excel97 units

// ОБНОВЛЕНИЕ: если Вы используете Delphi 4, то замените xlWBatWorkSheet на 1 (один)

//-----------------------------------------------------------
// если toExcel = false, то экспортируем содержимое dbgrid в Clipboard
// если toExcel = true, то экспортируем содержимое dbgrid в Microsoft Excel
//-----------------------------------------------------------

procedure ExportDBGrid(toExcel: Boolean);
var
bm: TBookmark;
col, row: Integer;
sline: string;
mem: TMemo;
ExcelApp: Variant;
begin
Screen.Cursor := crHourglass;
DBGrid1.DataSource.DataSet.DisableControls;
bm := DBGrid1.DataSource.DataSet.GetBookmark;
DBGrid1.DataSource.DataSet.First;

// создаём объект Excel
if toExcel then
begin
ExcelApp := CreateOleObject("Excel.Application");
ExcelApp.WorkBooks.Add(xlWBatWorkSheet);
ExcelApp.WorkBooks[1].WorkSheets[1].name := "Grid Data";
end;

// Сперва отправляем данные в memo
// работает быстрее, чем отправлять их напрямую в Excel
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := MainForm;
mem.Clear;
sline := "";

// добавляем информацию для имён колонок
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].DisplayLabel + #9;
mem.Lines.Add(sline);

// получаем данные из memo
for row := 0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
sline := "";
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].AsString + #9;
mem.Lines.Add(sline);
DBGrid1.DataSource.DataSet.Next;
end;

// копируем данные в clipboard
mem.SelectAll;
mem.CopyToClipboard;

// если необходимо, то отправляем их в Excel
// если нет, то они уже в буфере обмена
if toExcel then
begin
ExcelApp.Workbooks[1].WorkSheets["Grid Data"].Paste;
ExcelApp.Visible := true;
end;

FreeAndNil(ExcelApp);
DBGrid1.DataSource.DataSet.GotoBookmark(bm);
DBGrid1.DataSource.DataSet.FreeBookmark(bm);
DBGrid1.DataSource.DataSet.EnableControls;
Screen.Cursor := crDefault;
end;


 
Yermek   (2004-02-14 16:15) [2]

Спасибо за код примного благодарен


 
Yermek   (2004-02-18 21:23) [3]

Код выдает ошибку в строке FreeAndNil(ExcelApp), я использую Excel 2000 и w2k.
Excel не отображает руские буквы, может это в самом DBD шрифт изменять надо или в шрифтах таблицы (Table Language)?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
4-6276
dit
2003-12-24 11:40
2004.03.03
процеду ра ловушки


1-6016
Tommy
2004-02-19 10:51
2004.03.03
Имеется поток,в нем инициализирую и запускаю еше один ...


14-6193
phantom2040
2004-02-12 10:44
2004.03.03
Организация сети


14-6209
Vinter
2004-02-11 15:33
2004.03.03
Инсталятор


14-6222
Ru
2004-02-11 11:18
2004.03.03
Можно ли обойти запрет на посещение сайтов?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский