Консультация № 65225
02.12.2006, 14:26
0.00 руб.
0 3 3
Здраствуйте, я хотела бы узнать как можно создать отчет на Excel-е. Я уже сделала так чтоб открылась книга, но как можно ввести в ячейки какие-нибудь данные.

Обсуждение

Неизвестный
03.12.2006, 02:59
общий
это ответ
Здравствуйте, Almusha!
http://www.softok.org/coding/othyap/11634prog.html вот тут пример работы с Word, а тут с Excel http://www.sql.ru/faq/faq_topic.aspx?fid=310 и вот еще http://articles.org.ru/cfaq/index.php?qid=1793&frommostrecent=yes
Неизвестный
03.12.2006, 12:18
общий
это ответ
Здравствуйте, Almusha!
В приложении пример вывода в Excel данных из БД.

Дополнительно можно еще форматировать
параметры ячеек:
//Устанавливаем ширину колонок
Colum:=XLApp.Workbooks[1].WorkSheets[‘Отчёт‘].Columns;
Colum.Columns[1].ColumnWidth:=5;
Colum.Columns[2].ColumnWidth:=10;
Colum.Columns[3].ColumnWidth:=20;
Colum.Columns[4].ColumnWidth:=30;
Colum.Columns[5].ColumnWidth:=20;

//Устанавливаем параметры шрифта для строк
Colum:=XLApp.Workbooks[1].WorkSheets[‘Отчёт‘].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;


Приложение:
procedure TForm1.Button1Click(Sender: TObject);var XLApp,Sheet,Colum:Variant; index,i:Integer;begin XLApp:= CreateOleObject(‘Excel.Application‘); //создаём объект Excel XLApp.Visible:=true; //запускаем его XLApp.Workbooks.Add(-4167); //создаем книгу XLApp.Workbooks[1].WorkSheets[1].Name:=‘Мой отчет‘; //Даем название книге// заполняем ячейки текстом Sheet:=XLApp.Workbooks[1].WorkSheets[‘Отчёт‘]; Sheet.Cells[2,1]:=‘Nomer‘; Sheet.Cells[2,2]:=‘Fio‘; Sheet.Cells[2,3]:=‘Adres‘; Sheet.Cells[2,4]:=‘Note1‘; Sheet.Cells[2,5]:=‘Note1‘;// заполняем ячейки данными из базы данных index:=3; Table1.First; for i:=0 to Table1.RecordCount-1 do begin Sheet.Cells[index,1]:=Table1.Fields.Fields[1].AsString; Sheet.Cells[index,2]:=Table1.Fields.Fields[2].AsString; Sheet.Cells[index,3]:=Table1.Fields.Fields[3].AsString; Sheet.Cells[index,4]:=Table1.Fields.Fields[5].AsString; Sheet.Cells[index,5]:=FormatDateTime(‘dddddd‘, Table1.Fields.Fields[6].AsDateTime); Inc(index); Table1.Next; end;end;
Неизвестный
04.12.2006, 09:46
общий
это ответ
Здравствуйте, Almusha!

используем TExcelApplication со вкладки Servers

xl.Visible[lcid(0)]:=true; // делаем, чтобы ексель был видимым
xl.Workbooks.Add(null,lcid(0)); //добавляем новый лист
xl.Range[‘A1‘,emptyparam].Value:=‘Привет‘; //Добавляем значение в ячейку A1
xl.Range[‘A1‘,‘E1‘].Value:=‘Привет‘; //добюавляем значения в диапозон A1-E1

For i:=0 to listbox1.Count do
xl.range[‘A‘+inttostr(i),emptyparam].value:=listbox1.items.strings[i]; // добавляем в каждую новую ячейку A значение из листбокса.
Форма ответа