Показать сообщение отдельно
Старый 09.05.2019, 10:37   #11  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
97 / 46 (2) +++
Регистрация: 30.08.2007
Адрес: Ulm
Записей в блоге: 6
Пару месяцев нвзад была очень похожая задача - один в один без подвалов, но с разрывами страниц.
С первой по третью строку шапка, 4 и 5 - строка


Итоговый вид


так я множу шапку:
X++:
public boolean pasteRepHeader(OfficeOpenXml.ExcelWorksheet _ExcelWorksheet, int _row)
{
    #define.RepHeader('RepHeader')
    #define.tmp('tmp')
    OfficeOpenXml.ExcelWorksheet fromExcelWorksheet;
    OfficeOpenXml.ExcelRange fromExcelRange;
    OfficeOpenXml.ExcelRange toExcelRange;
    boolean ret = true;

    fromExcelWorksheet = excelEPPLus.getWorksheet(#tmp);
    fromExcelRange = fromExcelWorksheet.get_Cells();
    toExcelRange = _ExcelWorksheet.get_Cells();

    fromExcelRange = fromExcelRange.get_Item(1,1,3,11);
    toExcelRange = toExcelRange.get_Item(_row,1,_row+3,11);
    fromExcelRange.Copy(toExcelRange);

    return ret;
}
и по похожему принципу строки
X++:
public boolean pasteRepLine(OfficeOpenXml.ExcelWorksheet _ExcelWorksheet, int _row)
{
    #define.tmp('tmp')
    OfficeOpenXml.ExcelWorksheet fromExcelWorksheet;
    OfficeOpenXml.ExcelRange fromExcelRange;
    OfficeOpenXml.ExcelRange toExcelRange;
    boolean ret = true;

    fromExcelWorksheet = excelEPPLus.getWorksheet(#tmp);
    fromExcelRange = fromExcelWorksheet.get_Cells();
    toExcelRange = _ExcelWorksheet.get_Cells();

    fromExcelRange = fromExcelRange.get_Item(4,1,5,11);
    toExcelRange = toExcelRange.get_Item(_row,1,_row+1,11);
    fromExcelRange.Copy(toExcelRange);

    return ret;
}
разрыв страниц:
X++:
...
excelColumn = ExcelWorksheet.Column(_col);
excelColumn.set_PageBreak(true);
...
короче - я от EPPlus просто балдю
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-05-09 09_17_26-W16.png
Просмотров: 506
Размер:	6.1 Кб
ID:	12304   Нажмите на изображение для увеличения
Название: 2019-05-09 09_18_33-W16_1.png
Просмотров: 473
Размер:	37.9 Кб
ID:	12305