-
Подскажите, как можно скопировать формат из одной группы ячеек строки 1 и вставить этот формат в аналогичные ячейки строк 2-10.
-
Уточняю вопрос. Имеем отформатированную таблицу на листе 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);
-
Все получилось !!!
WS.Range['A1','W1'].Copy(EmptyParam); WS.Range['A2','W2'].PasteSpecial(xlPasteFormats,xlNone,False,False);
|