Конференция "Corba" » Копирование формата ячейки в Excel из Delphi
 
  • Егоров А.Н. (03.05.07 16:07) [0]
    Подскажите, как можно скопировать формат из одной группы ячеек строки 1 и вставить этот формат в аналогичные ячейки строк 2-10.
  • Егоров А.Н. (04.05.07 08:07) [1]
    Уточняю вопрос. Имеем отформатированную таблицу на листе 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);
  • Егоров А.Н. (04.05.07 08:36) [2]
    Все получилось !!!

    WS.Range['A1','W1'].Copy(EmptyParam);
    WS.Range['A2','W2'].PasteSpecial(xlPasteFormats,xlNone,False,False);
 
Конференция "Corba" » Копирование формата ячейки в Excel из Delphi
Есть новые Нет новых   [134431   +9][b:0][p:0]