Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизЭкспорт SQL в EXCEL Найти похожие ветки
← →
Mery (2004-01-06 07:52) [0]Здравствуйте. У меня появилась такая проблема: необходимо отправить полученный запрос SQL, к примеру имеющий поля Pole1,pole2,pole3, в EXCEL, при этом должна сформироваться "шапка" отчета типа <Данные за январь> и заголовки столбцов типа "Наименование", "Кол-во", "Сумма". Этот отчет обязательно должен формироваться из самой программы при нажатии на кнопку.
← →
Ильш (2004-01-06 07:54) [1]OLE OLE OLE - программер вперед!
Почитай про OLE Application.
← →
Mery (2004-01-06 07:58) [2]Вызов EXCEL мне понятен, но как указать что такие-то поля и вывод "шапки". Это что, нужно массив организовать? Но как? Хотелось бы получить ответ конкретно с мною предложенным примером.
← →
Ильш (2004-01-06 08:11) [3]Шапку ручками формируешь. В нужные ячейки нужные данные загоняешь. Ну а с запросом - в цикле пробегаешь по нему и гонишь данные. В нужный столбец перегоняешь данные из нужного поля, и так с каждой записью.
← →
Mery (2004-01-06 08:21) [4]>В нужные ячейки нужные данные загоняешь. Ну а с запросом - в цикле пробегаешь по нему и гонишь данные. В нужный столбец перегоняешь данные из нужного поля, и так с каждой записью.
Я понимаю, что именно это и нужно сделать. Но как? Конкретно же спрашиваю: нужен программный код. Я ни разу этого не делала и представления об этом не имею. Поэтому и вопрос.
← →
b0bi (2004-01-06 09:14) [5]как будет удобно, из Grid"a или из DataSet"a?
← →
Johnmen (2004-01-06 09:16) [6]>Mery
А что фак говорит по этому поводу ? :))))))))
← →
Mery (2004-01-06 09:17) [7]Из DataSet"a, пожалуйста
← →
b0bi (2004-01-06 09:21) [8]Procedure ExportDataSet(DS:TDataSet; ss:Array of String);
var
WorkBook, Cell: Variant;
s:string;
i,j:Integer;
dese:Char;
Begin
Excel:=0;
Excel:=CreateOleObject("Excel.Application");
Excel.Visible:=True;
Excel.SheetsInNewWorkbook := 1;
WorkBook := Excel.WorkBooks.Add;
Sheet := WorkBook.WorkSheets[1];
Sheet.Cells.VerticalAlignment := $FFFFEFF4;// xlCenter
If Caption<>"" Then Sheet.Name:=Caption;
dese:=DecimalSeparator;
DecimalSeparator:=".";
Row:=1;
Sheet.Rows[Row].Font.Bold := True;
Sheet.Rows[Row].RowHeight:=40;
For i:=0 to Length(SS)-1 do
Begin
s:=SS[i];
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 Length(SS)-1 do
Begin
Cell:=Sheet.Cells[Row, i+1];
Case DS.Fields[i].DataType of
ftBoolean : If DS.Fields[i].AsBoolean then s:="
← →
b0bi (2004-01-06 09:22) [9]да и забыл переменные
Var Col, Row,iRow : Integer;
Sheet:Variant;
Excel:Variant;
Caption:String;
USER: String;
← →
b0bi (2004-01-06 09:23) [10]ещё есть хорошая компонента XLReport
← →
Mery (2004-01-06 09:29) [11]Уточни, пожалуйста, Cell.Value-это шапка отчета и названий полей?
А сами поля запроса и их тип в var описывать не надо?
← →
Ильш (2004-01-06 09:38) [12]
> А сами поля запроса и их тип в var описывать не надо?
не надо ! :)
> Cell.Value
это ничья не шапка! о чем ты??? переведи же ну... это ж ты данные загоняешь в ячейку экселя
← →
Mery (2004-01-06 09:52) [13]>bobi
Огромное спасибо за помощь и поддержку
>Ильш
Флаг в руки! Много гонора, в итоге помощи - ноль
← →
Ильш (2004-01-06 09:55) [14]
> Mery (06.01.04 09:52) [13]
Огромное пофиг!
Учись читать доки и искать хотя бы с помощью Яндекса. Там все с примерами.
А если серьезно - в вопросе ты не просила примеров сначала!!! Ну извини не успел запостить. Работать еще надо, кроме болтовни :)
← →
Mery (2004-01-06 09:59) [15]Всем успехов!
← →
nstur (2004-01-06 11:50) [16]Могу посоветовать
http://www.nstur.narod.ru/Delphi/excel1.html
http://www.nstur.narod.ru/Delphi/NsComponent/NslecxE2000.html
← →
Mery (2004-01-06 12:03) [17]>nstur
Спасибо, возьмем на заметку.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c