|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.09.2007, 21:53 | #1 |
Регистрация: 06.09.2007
Сообщений: 3
|
работа с excel файлами через Delphi
Как распечатать stringgrid(вместе с ячейками)? На одном из форумов написанно, что нужно в отчёте в ручную рисовать ячейки. А как это сделать?
Последний раз редактировалось Winss; 06.09.2007 в 22:20. |
07.09.2007, 07:45 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
если надо границы нарисовать, то запускаешь эксель и записываешь макрос, в котором у ячеек устанавливаешь нужную границу, ну и потом готовый код этого макроса с бэйсика на делфи перегоняешь. В принципе ничего сложного
|
07.09.2007, 16:07 | #3 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
а что ole-обїект не сгодится тут?
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
07.09.2007, 17:44 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
ну я посчитал что для автора проблема рамочки у ячеек нарисовать (а создание оле объекта уже имееца), вот и опустил создание оле. Ну а для того, чтобы узнать что с этим объектом делать лично я всегда макрос записываю, а потом в делфи код перегоняю с необходимыми поправками
ЗЫ. если уж туплю, то извиняйте... первые лекции не идут мне на пользу |
08.09.2007, 12:27 | #5 |
форвард
Форумчанин
Регистрация: 03.08.2007
Сообщений: 130
|
procedure TForm2_temp.bb_excelClick(Sender: TObject);
var ExcelApp,Sheet, Workbook, Range, Cell1, Cell2, ArrayData : Variant; S: String; T,V,BeginCol, BeginRow, i, j : integer; RowCount, ColCount : integer; P:REAL; begin Cursor:=crHourGlass; // Координаты левого верхнего угла области, в которую будем выводить данные BeginCol := 5; BeginRow := 11; // Размеры выводимого массива данных RowCount := 12; {у тебя размер StringGrid} ColCount := 40; // Создание Excel ExcelApp := CreateOleObject('Excel.Application' ); // Отключаем реакцию Excel на события, чтобы ускорить вывод информации ExcelApp.Application.EnableEvents := false; // Создаем Книгу (Workbook) // Если заполняем шаблон, то Workbook := ExcelApp.WorkBooks.Add('C:\MyTempla te.xls'); Workbook := ExcelApp.WorkBooks.Add('protocolMA_ temp.xls'); // Workbook := ExcelApp.WorkBooks.Add; Sheet := Workbook.Sheets.Item[1]; Sheet.Cells[3,1]:=' '; {можно так} Sheet.Cells[5,1]:=' '; Sheet.Cells[6,1]:=' '; // или так а вообще можно пользаватьяся сразу оба варианта // Создаем Вариантный Массив, который заполним выходными данными ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); // Cursor:=crHourGlass; // Заполняем массив // тут цикл и присвоивание ячеек StringGrid ArrayData[I, J] := {параметр}; // Область, в которую будем выводить данные Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2]; // А вот и сам вывод данных // Намного быстрее поячеечного присвоения Range.Value := ArrayData; beep; // Делаем Excel видимым Cursor:=crDefault; ExcelApp.Visible := true; end; p.s: uses добав comobj и пробуй , удачи !
dela ne v dengax a v yego kolichestve
|
08.09.2007, 14:20 | #6 | |
Регистрация: 06.09.2007
Сообщений: 3
|
Цитата:
С проблемой обрисовки разобрался, спасибо. Теперь возник другой вопрос: Выделить 1 ячейку без использования букв можно (т.е. .Cells[1,1]), а можно ли выделить так диапазон? |
|
08.09.2007, 17:54 | #7 |
Регистрация: 06.09.2007
Сообщений: 3
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлами в Delphi 7 | NeAlSe | Помощь студентам | 11 | 19.11.2010 17:08 |
Редактирование Excel книг через Delphi? | DA-corp. | БД в Delphi | 3 | 01.03.2008 09:50 |
Delphi-работа с файлами,каталогами | POPOV | Помощь студентам | 6 | 30.11.2007 15:12 |