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

Вниз

Из DBGrid в Excel   Найти похожие ветки 

 
shestoff ©   (2005-02-23 04:46) [0]

Подскажите, пожалуйста, начинающему: каким образом информацию, содержащуюся в DBGrid можно загнать в Excel? (в DBGrid тяну из таблиц SQL) Спасибо.


 
YurikGL ©   (2005-02-23 08:20) [1]

yandex+delphi+екпорт+excel


 
Иксик ©   (2005-02-23 08:40) [2]

Можешь напрямую из SQL перетянуть dts пакетом :)
А так, самый примитивный способ, какой в голову приходит, это OLE.
Хотя лучше наверное драйвера ODBC для Excel использовать, но тут я пас, такими извращениями не занимался...


 
GRAND25 ©   (2005-02-23 11:08) [3]

Лучше, чем vtkExport Library в этом вопросе сложно придумать. Найди эту библу и наслаждайся жизнью.


 
}|{yk ©   (2005-02-23 11:16) [4]

{IFDEF  UseExcel}

function TMyDBGrid.SaveToXLS(_FileName: TFileName; UseOnlyVisibleColumns: boolean = true): TFunctionResult;
var
 XLSArray, XLSRow: Variant;
 HighBound, IDX: integer;
 book: TBookmark;
 E: Exception;
 FieldsList: TStringList;
 ExcelApp: TOpExcel;
begin
 Result.Successful := False;
 Result.MessageOnError := "There is no data grid";
 try
   if Assigned(self) then
     if Assigned(DataSource) then
       if Assigned(DataSource.DataSet) then
       begin
         try
           book := DataSource.DataSet.GetBookmark;
           DataSource.DataSet.DisableControls;
           if DataSource.DataSet.IsEmpty then
           begin
             Result.MessageOnError := "Dataset is empty"
           end
           else
              {а тут власне виведення даних до варіантного масиву}
           begin
             FieldsList := TStringList.Create;
             for Idx := 0 to self.Columns.Count - 1 do
             begin
               if self.Columns[Idx].Visible or not UseOnlyVisibleColumns then
                 FieldsList.Add(self.Columns[Idx].FieldName);
             end;
             with self.DataSource.DataSet do
             begin
               Last; {щоб відфетчити всі записи}
               XLSArray := VarArrayCreate([0, RecordCount - 1], varVariant);
               First;
               while not Eof do
               begin
                 XLSRow := VarArrayCreate([0, FieldsList.Count - 1], varVariant);
                 for IDX := 0 to FieldsList.Count - 1 do
                   XLSRow[IDX] := FindField(FieldsList.Strings[Idx]).Value;
                 XLSArray[RecNo - 1] := XLSRow;
                 Next;
               end;
             end;
             Result.MessageOnError := "Data retrived from dataset, but not inserted into Excel";
             {тепер грузимо Excel та кидаємо в нього масив}
             try
               ExcelApp := TOpExcel.Create(self);
               ExcelApp.Visible := false;
               ExcelApp.Connected := true;
               with ExcelApp.Workbooks.Add do
               begin
                 with Worksheets.Add do
                   with Ranges.Add do
                   begin
                     for IDX := VarArrayLowBound(XLSArray, 1) to VarArrayHighBound(XLSArray, 1)
                       do
                     begin
                       Address := GetCellRangeName(1, FieldsList.Count, IDX + 1, IDX + 1);
                       Name := Format("Record No %d", [IDX]);
                       Value := XLSArray[IDX];
                     end;
                   end;
                 SaveAs(_FileName);
               end;
               Result.Successful := true;
               Result.MessageOnError := "Succesfull transfered data";
             finally
               ExcelApp.Free;
             end;
           end;
         finally
           if Assigned(book) then
             DataSource.DataSet.GotoBookmark(book);
           if Assigned(FieldList) then
             FieldList.Free;
           DataSource.DataSet.EnableControls;
         end;
       end;
 except on E: Exception do
   begin
     Result.MessageOnError := E.Message;
     Exit;
   end;
 end;
end;
{ENDIF}


 
}|{yk ©   (2005-02-23 11:19) [5]

Ошибся, более старая версия
ExcelApp := TOpExcel.Create(self);
стоит перед try, а не после


 
Megabyte ©   (2005-02-23 11:32) [6]

Мдяя, я думал, все гораздо проще. :)
Тоже потребовалось транспортировать данные в Эксель.


 
Ditrix ©   (2005-02-23 11:44) [7]

можноя  использовать Grid из состава EhLib
функция SaveDBGridEhToExportFile(...)


 
KSergey ©   (2005-02-24 06:24) [8]

http://www.delphikingdom.com/asp/itemq.asp?mode=1&itemid=2

и читаем как минимум "По волнам интеграции… " в 3-х частях.



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

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

Наверх





Память: 0.48 MB
Время: 0.047 c
1-1108961311
buka
2005-02-21 07:48
2005.03.13
Поисковая система


3-1107890484
XAN
2005-02-08 22:21
2005.03.13
QReport+Unicode


14-1109085164
r.o.o.t
2005-02-22 18:12
2005.03.13
ВАША ОЦЕНКА ЦЕНЫ ПРОГРАМНОГО ПРОДУКТА!!!!


1-1109535009
ALex78
2005-02-27 23:10
2005.03.13
Текстовая таблица


3-1108102236
O.O
2005-02-11 09:10
2005.03.13
Принудительная запись кэш BDE на диск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский