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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 13:51   #1
Farmokolog
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 16
По умолчанию Excel

Подскажите как доработать чтобы из таблицы Stringgrid брал все данные
и вставлялв в Excel начиная c 3 строки, с перехватом ошибок если вдург неустановлен Excel выдовал сообщение.
Код:
EX:=CreateOleObject('Excel.Application');
EX.WorkBooks.Add(-4167);
ExList:=EX.WorkBooks[1].WorkSheets[1];
ExList.Name:='Баланс';
Ex.Visible:=true;
Cols:= ExList.Columns;
Cols.Columns[1].ColumnWidth:=20;
Cols.Columns[1].HorizontalAlignment:=xlLeft;
Cols.Columns[2].ColumnWidth:=20;
Cols.Columns[2].HorizontalAlignment:=xlLeft;
Cols.Columns[3].ColumnWidth:=20;
Cols.Columns[3].HorizontalAlignment:=xlLeft;
Cols.Columns[4].ColumnWidth:=20;
Cols.Columns[4].HorizontalAlignment:=xlLeft;
Cols.Columns[5].ColumnWidth:=20;
Cols.Columns[5].HorizontalAlignment:=xlLeft;
Cols.Columns[6].ColumnWidth:=20;
Cols.Columns[6].HorizontalAlignment:=xlLeft;

Rows:=EXList.Rows;
Rows.Rows[1].HorizontalAlignment:=xlCenter;
Rows.Rows[1].Font.Bold:=true;
Rows.Rows[1].Font.Color:=clGreen;
Rows.Rows[1].Font.Size:=16;
Rows.Rows[2].HorizontalAlignment:=xlCenter;
Rows.Rows[2].Font.Bold:=true;
Rows.Rows[2].Font.Color:=clNavy;
ExList.Range['A1:F1'].MergeCells:=true;
ExList.Range['A2:F2'].Borders.LineStyle:=xlContinuous ;
ExList.Range['A2:C2'].MergeCells:=true;
ExList.Range['A3:C3'].Borders.LineStyle:=xlContinuous ;
ExList.Range['D2:F2'].MergeCells:=true;
ExList.Range['D3:F3'].Borders.LineStyle:=xlContinuous ;
Exlist.Cells[1,1]:='Материальный баланс';
Exlist.Cells[2,1]:='Входные данные';
Exlist.Cells[2,4]:='Выходные данные';
Except
showmessage('Ошибка');
end;
Farmokolog вне форума Ответить с цитированием
Старый 28.02.2011, 08:50   #2
Нур
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 44
По умолчанию

А заключить в try except не пробовал? Ну а Данные можно передавать пробегая по StringGrid путем примерным

Excel.workbook.Sheet.Cell[i][j] := StringGrid.cells[i][j];

Ну там сам доработай как надо) Кстати такая передача в больших таблицах будет заметно медленной из за частого обращения к дисковой памяти. Постарайся в Range забивать. если тебе это надо конешно...
Нур вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматизация поиска данных excel файла в другом excel файле с соответствующими пометками! ruotches Microsoft Office Excel 23 18.06.2013 10:24
Скорость исполнения макроса в Excel-2010 намного ниже, чем в Excel-2003 Павел+ Microsoft Office Excel 5 29.12.2010 03:28
Каким образом можно сделать таблицу Excel в ячейке Excel? Severny Microsoft Office Excel 3 08.10.2010 09:13
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28