Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование формата ячейки в Excel из Delphi


Егоров А.Н. ©   (2007-05-03 16:07:00) 

Подскажите, как можно скопировать формат из одной группы ячеек строки 1 и вставить этот формат в аналогичные ячейки строк 2-10.


Егоров А.Н.   (2007-05-04 08:36:00) [1]

Все получилось !!!

WS.Range['A1','W1'].Copy(EmptyParam);
WS.Range['A2','W2'].PasteSpecial(xlPasteFormats,xlNone,False,False);


Егоров А.Н.   (2007-05-04 08:07:00) [2]

Уточняю вопрос. Имеем отформатированную таблицу на листе WS в книге WB Excel. При этом ячейки A1:C1, D1:S1, T1:W1 объеденены, т.е. имеем три ячейки (группы) обведенных рамкой, каждая со своим форматом. Затем вставляем строки, чтобы увеличить до необходимого количество строк в форматированной таблице.

var
XL: TExcelApplication;
WB: ExcelWorkbook;
WS: ExcelWorksheet;

// Открываем EXCEL
XL := TExcelApplication.Create(Self);
XL.ConnectKind := ckNewInstance;
XL.Connect;
// Открываем книгу WB
WB := XL.Workbooks.Open(fTemp, 3, False,
 EmptyParam, EmptyParam, EmptyParam, true, EmptyParam, EmptyParam,
 EmptyParam, EmptyParam, EmptyParam, true, EmptyParam, EmptyParam, 0);
// Открываем лист WS
WS := WB.Sheets['Накладная'] as ExcelWorksheet;
// Вставляем строки
WS.Range['A1','A1'].EntireRow.Insert(xlDown,EmptyParam);

в итоге имеем строку 2, которая имеет все: формат ячеек, выравнивание, рамки, но пропадает объединение ячеек.

Тот же эфект происходит при копировании строки 1 в строку 2:
WS.Range['A1','W1'].Copy(WS.Range['A2','W2']);

Можно ли выполнить Copy() в буфер и как это записать, чтобы потом можно было выполнить вставку формата в строку 2:
WS.Range['A2','W2'].PasteSpecial(xlPasteFormats,xlNone,False,False);


Наверх

Титульная страница Поиск, карта сайта Написать письмо