Example #1
0
        protected override void RenderBody(ExtendedXlsFile xls)
        {
            UsedRows = Parent.GetUsedRows() + 1;
            StartRow = UsedRows;
            StartCol = InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.BalPartName];

            xls.SetCellValue(UsedRows,
                             InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.BalPartName],
                             "Субъект/Подстанция/Присоединение",
                             InternalData.GetHeaderFormat(xls));
            xls.MergeCells(UsedRows,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.BalPartName],
                           UsedRows + 1,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm] - 1); //Нужно объединить ячейку до "Прием кВт.ч."

            xls.SetCellValue(UsedRows,
                             InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm],
                             "Прием кВт.ч.",
                             InternalData.GetHeaderFormat(xls));
            xls.MergeCells(UsedRows,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm],
                           UsedRows + 1,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm]);
            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm],
                                xls.GetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm]) +
                                Convert.ToInt32(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.InputSumm] * ExcelMetrics.ColMult(xls)));
            }

            xls.SetCellValue(UsedRows,
                             InternalData.HeaderInputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                             "В том числе по уровням напряжения",
                             InternalData.GetHeaderFormat(xls));
            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.SetColOutlineLevel(InternalData.HeaderInputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                                       InternalData.HeaderInputColumnNumbers.Values.Select(x => x.ColumnNumber).Max(),
                                       1);
            }
            xls.MergeCells(UsedRows,
                           InternalData.HeaderInputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                           UsedRows,
                           InternalData.HeaderInputColumnNumbers.Values.Select(x => x.ColumnNumber).Max());

            foreach (var voltage in InternalData.HeaderInputColumnNumbers)
            {
                xls.SetCellValue(UsedRows + 1,
                                 voltage.Value.ColumnNumber,
                                 ((((double)voltage.Key) / 100.0)).ToString() + "кВ",
                                 InternalData.GetHeaderFormat(xls));

                if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
                {
                    xls.SetColWidth(voltage.Value.ColumnNumber,
                                    xls.GetColWidth(voltage.Value.ColumnNumber) +
                                    Convert.ToInt32(voltage.Value.ColumnNumber * ExcelMetrics.ColMult(xls)));
                }
            }

            xls.SetCellValue(UsedRows,
                             InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm],
                             "Отдача кВт.ч.",
                             InternalData.GetHeaderFormat(xls));
            xls.MergeCells(UsedRows,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm],
                           UsedRows + 1,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm]);
            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm],
                                xls.GetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm]) +
                                Convert.ToInt32(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.OutputSumm] * ExcelMetrics.ColMult(xls)));
            }


            xls.SetCellValue(UsedRows,
                             InternalData.HeaderOutputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                             "В том числе по уровням напряжения",
                             InternalData.GetHeaderFormat(xls));
            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.SetColOutlineLevel(InternalData.HeaderOutputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                                       InternalData.HeaderOutputColumnNumbers.Values.Select(x => x.ColumnNumber).Max(),
                                       1);
            }
            xls.MergeCells(UsedRows,
                           InternalData.HeaderOutputColumnNumbers.Values.Select(x => x.ColumnNumber).Min(),
                           UsedRows,
                           InternalData.HeaderOutputColumnNumbers.Values.Select(x => x.ColumnNumber).Max());

            foreach (var voltage in InternalData.HeaderOutputColumnNumbers)
            {
                xls.SetCellValue(UsedRows + 1,
                                 voltage.Value.ColumnNumber,
                                 ((((double)voltage.Key) / 100.0)).ToString() + "кВ",
                                 InternalData.GetHeaderFormat(xls));

                if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
                {
                    xls.SetColWidth(voltage.Value.ColumnNumber,
                                    xls.GetColWidth(voltage.Value.ColumnNumber) +
                                    Convert.ToInt32(voltage.Value.ColumnNumber * ExcelMetrics.ColMult(xls)));
                }
            }

            xls.SetCellValue(UsedRows,
                             InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm],
                             "Сальдо кВт.ч.",
                             InternalData.GetHeaderFormat(xls));
            xls.MergeCells(UsedRows,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm],
                           UsedRows + 1,
                           InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm]);
            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm],
                                xls.GetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm]) +
                                Convert.ToInt32(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.SaldoSumm] * ExcelMetrics.ColMult(xls)));
            }

            UsedRows++;
            UsedCols = InternalData.TotalColumnsCount;

            SetBorderAllCellsInBlock(xls, System.Drawing.Color.Black, FlexCel.Core.TFlxBorderStyle.Thin);

            xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.BalPartName], Convert.ToInt32(30f * ExcelMetrics.ColMult(xls)));
            xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.ItemInLev1], Convert.ToInt32(30f * ExcelMetrics.ColMult(xls)));

            if (InternalData.HeaderColumnNumbers.ContainsKey(HeaderBal0LogicalParts.ItemInLev3))
            {
                xls.SetColWidth(InternalData.HeaderColumnNumbers[HeaderBal0LogicalParts.ItemInLev2], Convert.ToInt32(30f * ExcelMetrics.ColMult(xls)));
            }

            if (InternalData.ExportType == TExportExcelAdapterType.toXLS)
            {
                xls.CollapseOutlineCols(1, TCollapseChildrenMode.Collapsed);
            }
        }