Форум: "Основная";
Текущий архив: 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