Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2007, 21:53   #1
Winss
 
Регистрация: 06.09.2007
Сообщений: 3
Вопрос работа с excel файлами через Delphi

Как распечатать stringgrid(вместе с ячейками)? На одном из форумов написанно, что нужно в отчёте в ручную рисовать ячейки. А как это сделать?

Последний раз редактировалось Winss; 06.09.2007 в 22:20.
Winss вне форума Ответить с цитированием
Старый 07.09.2007, 07:45   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

если надо границы нарисовать, то запускаешь эксель и записываешь макрос, в котором у ячеек устанавливаешь нужную границу, ну и потом готовый код этого макроса с бэйсика на делфи перегоняешь. В принципе ничего сложного
pu4koff вне форума Ответить с цитированием
Старый 07.09.2007, 16:07   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
если надо границы нарисовать, то запускаешь эксель и записываешь макрос, в котором у ячеек устанавливаешь нужную границу, ну и потом готовый код этого макроса с бэйсика на делфи перегоняешь. В принципе ничего сложного
а что ole-обїект не сгодится тут?
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 07.09.2007, 17:44   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Pitbull Посмотреть сообщение
а что ole-обїект не сгодится тут?
ну я посчитал что для автора проблема рамочки у ячеек нарисовать (а создание оле объекта уже имееца), вот и опустил создание оле. Ну а для того, чтобы узнать что с этим объектом делать лично я всегда макрос записываю, а потом в делфи код перегоняю с необходимыми поправками
ЗЫ. если уж туплю, то извиняйте... первые лекции не идут мне на пользу
pu4koff вне форума Ответить с цитированием
Старый 08.09.2007, 12:27   #5
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 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
Cantana вне форума Ответить с цитированием
Старый 08.09.2007, 14:20   #6
Winss
 
Регистрация: 06.09.2007
Сообщений: 3
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
ну я посчитал что для автора проблема рамочки у ячеек нарисовать (а создание оле объекта уже имееца)
именно так)
С проблемой обрисовки разобрался, спасибо.
Теперь возник другой вопрос: Выделить 1 ячейку без использования букв можно (т.е. .Cells[1,1]), а можно ли выделить так диапазон?
Winss вне форума Ответить с цитированием
Старый 08.09.2007, 17:54   #7
Winss
 
Регистрация: 06.09.2007
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Winss Посмотреть сообщение
именно так)
Теперь возник другой вопрос: Выделить 1 ячейку без использования букв можно (т.е. .Cells[1,1]), а можно ли выделить так диапазон?
с этим тоже уже разобрался)
Winss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами в 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