Главная страница
    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.007 c
1-6048
maxXP
2004-02-19 02:04
2004.03.03
Как в ListBox определить количество элементов?


1-6115
Miwa
2004-02-20 17:18
2004.03.03
Как в TStringList.AddObject вместо объекта integer засунуть?


8-6159
Please
2003-10-31 22:46
2004.03.03
Компонент Varian WorkShop


3-5951
Evgen
2004-02-06 06:46
2004.03.03
Codepage 866


3-5995
Дина
2004-02-05 08:48
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский