Что-то вроде этого:
X++:
#define.xlPasteFormats(-4122)
private void copyLineFormat(SysExcelWorksheet _workSheet, int _fromRow, int _toRow)
{
Com rangeFrom, rangeTo;
str strRangeFrom, strRangeTo;
strRangeFrom = ComExcelDocument_RU::numToNameCell(#colItemId, _fromRow) + ":" + ComExcelDocument_RU::numToNameCell(endCol, _fromRow);
strRangeTo = ComExcelDocument_RU::numToNameCell(#colItemId, _toRow) + ":" + ComExcelDocument_RU::numToNameCell(endCol, _toRow);
rangeFrom = _workSheet.cells().range(strRangeFrom).comObject();
rangeTo = _workSheet.cells().range(strRangeTo).comObject();
rangeFrom.Copy();
rangeTo.PasteSpecial(#xlPasteFormats);
rangeFrom.finalize();
rangeTo.finalize();
}
Но это для одного и того же листа, далее доработать несложно. Только следует знать, как минимум две вещи:
1) Механизм тормозной;
2) В момент формирования отчета пользователь не может использовать накаким образом буфер обмена для других задач