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

Вниз

Из БД да в Exel   Найти похожие ветки 

 
Zevsus   (2002-04-29 18:19) [0]

Здравствуйте! Вот насущный вопрос.. Ноужно TStringGrid превратить в документ Exel...
спасибо большое!
простите, если вопрос глупым показался..


 
alxx   (2002-04-29 19:21) [1]

Я вот в свое время такое написал: Оно DBGrid переносит (из БД).
Правда, может быть где-то маленькие глюки есть...

unit UExc;

INTERFACE

Uses Variants, ComCtrls, db,dbgrids,ComObj,sysUtils,Graphics, Classes;

Procedure ExportToExcel(Grid:TDBGrid);

IMPLEMENTATION

Procedure ExportToExcel(Grid:TDBGrid);
var
WorkBook, Cell: Variant;
s:string;
ds:TDataSet;
i,j:Integer;
dese:Char;
Excel:Variant;
Sheet:Variant;
Row:Integer;
Begin
Excel:=UnAssigned; // Соединяемся с Excel
Excel:=CreateOleObject("Excel.Application");
Excel.Visible:=True;
Excel.DisplayAlerts:=false;
Excel.WorkBooks.Add;

Excel.SheetsInNewWorkbook := 1; // Добавляем рабочую книгу
WorkBook := Excel.WorkBooks.Add;
Sheet := WorkBook.WorkSheets[1];
Sheet.Cells.VerticalAlignment := $FFFFEFF4; // xlCenter
Sheet.Name:="Отчет"; //

// dese:=DecimalSeparator;

ds:=Grid.DataSource.DataSet;
// DecimalSeparator:=".";
Row:=3; // Оставим место (допустим для названия

Sheet.Rows[Row].Font.Bold := True; // Жирный шрифт для заголовков
Sheet.Rows[Row].RowHeight:=40;

For i:=0 to Grid.Columns.Count-1 do
Begin
s:=Grid.Columns.Items[i].Title.Caption;
Sheet.Cells[Row, i+1]:=s;

Cell:=Sheet.Cells[Row, i+1];
Cell.Borders.LineStyle:=1;
Cell.Interior.Color:=clLtGray;
End;

ds.First;

While not ds.Eof do
Begin
Inc(Row);
For i:=0 to Grid.Columns.Count-1 do
Begin
Cell:=Sheet.Cells[Row, i+1];
If Grid.Columns.Items[i].Field.DataType = ftBoolean Then
Begin
If Grid.Columns.Items[i].Field.AsBoolean then s:="Да" Else s:="";
End
Else
Begin
s:=Grid.Columns.Items[i].Field.AsString;
End;

If s="02.01.00" Then Cell.Value:="" Else Cell.Value:=s;

Cell.Borders.LineStyle:=1;
Cell.HorizontalAlignment := $FFFFEFF4;
If i=0 Then
Cell.Interior.Color:=clLtGray;
End;

ds.Next;
End;

Sheet.Cells.Columns.AutoFit;

// DecimalSeparator:=dese;
End;

End.


 
MBo   (2002-04-30 05:50) [2]

Если это разовое дело, можно через Clipboard перенести.
Пример
http://delphibase.endimus.com/?action=viewfunc&topic=vclctrl&index=5

Advertisment :)


 
Zevsus   (2002-04-30 11:26) [3]

Супер! :) всем спасибо, от радости аж запрыгал, когда заработало :)
Хотелось бы теперь, чтобы этот файл сразу же сохранился..
По моему, это нельзя сделать через OLE..


 
AFROLOV   (2002-04-30 11:45) [4]

Можно.
Посмотри метод Save в справке по VBA.



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

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

Наверх




Память: 0.45 MB
Время: 0.005 c
3-49846
Дмитрий Ковба
2002-04-18 19:13
2002.05.16
Интересный вопрос: сортировка связаных таблиц


14-50129
Agent Smith
2002-04-08 17:23
2002.05.16
России принимают DMCA!


3-49879
Tolick
2002-04-19 13:41
2002.05.16
Конвертировать словарь DCT в DDF


4-50158
Юля_Орлова
2002-03-14 12:29
2002.05.16
архивация в ходе работы программы


14-50105
hp1100
2002-04-05 09:19
2002.05.16
Как протоптать дорожку по умолчанию на открытие проектов?





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