Показать сообщение отдельно
Старый 18.06.2020, 08:53   #3  
GrechkaIsTheBest is offline
GrechkaIsTheBest
Участник
 
2 / 20 (1) +++
Регистрация: 11.10.2010
Нужно тут было в XmlExcelReport_RU добавить колонтитулы, если кому пригодится, некоторые наработки)

X++:
class OxmlWorksheet_RU
{
    DocumentFormat.OpenXml.Spreadsheet.HeaderFooter headerFooter_NEW;
}
private void initWorksheetElements()
{
	if (oxmlElement is DocumentFormat.OpenXml.Spreadsheet.HeaderFooter)
	{
		headerFooter_NEW = oxmlElement as DocumentFormat.OpenXml.Spreadsheet.HeaderFooter;
	}
}
public void addFooter_NEW(str _text, SysAlignment _alignment = SysAlignment::AlignDefault)
{
    DocumentFormat.OpenXml.Spreadsheet.OddFooter    oddFooter;
    str                                             resultText;

    if (headerFooter_NEW)
    {
        oddFooter = headerFooter_NEW.get_OddFooter();
        if (! oddFooter)
        {
            oddFooter = new DocumentFormat.OpenXml.Spreadsheet.OddFooter();
            headerFooter_NEW.set_OddFooter(oddFooter);
        }
        resultText = oddFooter.get_Text();
        resultText += this.getAlignmentStr_NEW(_alignment) + _text;
        oddFooter.set_Text(resultText);
    }
}
public void addHeader_NEW(str _text, SysAlignment _alignment = SysAlignment::AlignDefault)
{
    DocumentFormat.OpenXml.Spreadsheet.OddHeader    oddHeader;
    str                                             resultText;

    if (headerFooter_NEW)
    {
        oddHeader = headerFooter_NEW.get_OddHeader();
        if (! oddHeader)
        {
            oddHeader = new DocumentFormat.OpenXml.Spreadsheet.OddHeader();
            headerFooter_NEW.set_OddHeader(oddHeader);
        }
        resultText = oddHeader.get_Text();
        resultText += this.getAlignmentStr_NEW(_alignment) + _text;
        oddHeader.set_Text(resultText);
    }
}
private str getAlignmentStr_NEW(SysAlignment _alignment)
{
    #define.HeaderFooterAlignmentLeft('&L')
    #define.HeaderFooterAlignmentRight('&R')
    #define.HeaderFooterAlignmentCenter('&C')

    switch (_alignment)
    {
        case SysAlignment::AlignLeft:
            return #HeaderFooterAlignmentLeft;
        case SysAlignment::AlignRight:
            return #HeaderFooterAlignmentRight;
        case SysAlignment::AlignCenter:
            return #HeaderFooterAlignmentCenter;
        default:
            return '';
    }
}

class XmlExcelReport_RU
public void addHeader_NEW(str _text, SysAlignment _alignment = SysAlignment::AlignDefault, anytype _workSheetIdOrName = '')
{
    OXMLWorksheet_RU    worksheet = document.workbook().getWorksheet(_workSheetIdOrName);

    worksheet.addHeader_NEW(_text, _alignment);
}
public void addFooter_NEW(str _text, SysAlignment _alignment = SysAlignment::AlignDefault, anytype _workSheetIdOrName = '')
{
    OXMLWorksheet_RU    worksheet = document.workbook().getWorksheet(_workSheetIdOrName);

    worksheet.addFooter_NEW(_text, _alignment);
}
За это сообщение автора поблагодарили: trud (10).