private static void UnclosedProtocolsAddPivotTableDepartments(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp) { ws.Cells[1, 1].Select(); string pivotTableName = @"WorkTimePivotTable"; Excel.Worksheet wsPivote = wb.Sheets["Сводная по отделениям"]; Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, ws.UsedRange, 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = 1; pivotTable.PivotFields("Подразделение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Подразделение").Position = 2; pivotTable.PivotFields("ФИО врача").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("ФИО врача").Position = 3; pivotTable.PivotFields("ФИО врача").Subtotals = new bool[] { false, false, false, false, false, false, false, false, false, false, false, false }; pivotTable.PivotFields("ФИО врача").LayoutForm = Excel.XlLayoutFormType.xlTabular; pivotTable.PivotFields("DCODE").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("DCODE").Position = 4; pivotTable.PivotFields("DCODE").Subtotals = new bool[] { false, false, false, false, false, false, false, false, false, false, false, false }; pivotTable.PivotFields("DCODE").LayoutForm = Excel.XlLayoutFormType.xlTabular; pivotTable.AddDataField(pivotTable.PivotFields("Уникальное лечение"), "Кол-во лечений", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("Всего протоколов", "='Протокол подписан' +'Протокол не подписан'", true); pivotTable.PivotFields("Всего протоколов").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю Всего протоколов").Caption = "Общее кол-во протоколов"; pivotTable.AddDataField(pivotTable.PivotFields("Протокол не подписан"), "Кол-во неподписанных протоколов", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("Процент неподписанных", "='Протокол не подписан' /'Всего протоколов'", true); pivotTable.PivotFields("Процент неподписанных").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю Процент неподписанных").Caption = "Доля неподписанных протоколов"; pivotTable.PivotFields("Доля неподписанных протоколов").NumberFormat = "0,00%"; pivotTable.PivotFields("Филиал").AutoSort(Excel.XlSortOrder.xlDescending, "Доля неподписанных протоколов"); pivotTable.PivotFields("Подразделение").AutoSort(Excel.XlSortOrder.xlDescending, "Доля неподписанных протоколов"); pivotTable.PivotFields("ФИО врача").AutoSort(Excel.XlSortOrder.xlDescending, "Доля неподписанных протоколов"); pivotTable.PivotFields("Статус сотрудника").Orientation = Excel.XlPivotFieldOrientation.xlPageField; pivotTable.PivotFields("Статус сотрудника").Position = 1; pivotTable.PivotFields("Подразделение").ShowDetail = false; pivotTable.PivotFields("Филиал").ShowDetail = false; pivotTable.HasAutoFormat = false; wsPivote.Columns[1].ColumnWidth = 60; wsPivote.Columns[2].ColumnWidth = 12; wb.ShowPivotTableFieldList = false; }
private static void AddPivotTableFreeCells(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp, bool isMonth, DateTime date, DateTime?dateMonthEnd = null, bool removeCrossing = false) { ws.Cells[1, 1].Select(); string sheetName; if (isMonth) { sheetName = "Сводная таблица текущий месяц"; } else { sheetName = "Сводная таблица"; } string pivotTableName = @"PivotTable"; Excel.Worksheet wsPivote = wb.Sheets[sheetName]; wsPivote.Activate(); Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, ws.UsedRange, 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); int position = 1; pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = position; position++; if (!removeCrossing) { pivotTable.PivotFields("Пересечение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Пересечение").Position = position; position++; } pivotTable.PivotFields("Отделение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Отделение").Position = position; position++; pivotTable.PivotFields("Врач").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Врач").Position = position; position++; pivotTable.PivotFields("Должность").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Должность").Position = position; position++; pivotTable.AddDataField(pivotTable.PivotFields("Всего"), "(Всего)", Excel.XlConsolidationFunction.xlSum); pivotTable.AddDataField(pivotTable.PivotFields("Занято"), "(Занято)", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("% занятых слотов", "='Занято'/'Всего'", true); pivotTable.PivotFields("% занятых слотов").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % занятых слотов").Caption = " % занятых слотов"; //pivotTable.AddDataField(pivotTable.PivotFields("% занятых слотов"), "(% занятых слотов)", Excel.XlConsolidationFunction.xlAverage); pivotTable.PivotFields(" % занятых слотов").NumberFormat = "0,00%"; // ActiveSheet.PivotTables("PivotTable").CalculatedFields.Add "Поле2", _ // "=Занято/Всего", True //ActiveSheet.PivotTables("PivotTable").PivotFields("Поле2").Orientation = _ // xlDataField //Columns("F:F").Select // Selection.Style = "Percent" // Range("F3").Select if (isMonth) { CultureInfo cultureInfoOriginal = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); for (DateTime dateToHide = date; dateToHide.Date <= dateMonthEnd.Value.Date; dateToHide = dateToHide.AddDays(1)) { string pivotItem = dateToHide.ToShortDateString(); Console.WriteLine("pivotItem: " + pivotItem); pivotTable.PivotFields("Дата").PivotItems(pivotItem).Visible = false; } Thread.CurrentThread.CurrentCulture = cultureInfoOriginal; } else { pivotTable.PivotFields("Дата").Orientation = Excel.XlPivotFieldOrientation.xlColumnField; pivotTable.PivotFields("Дата").Position = 1; pivotTable.PivotFields("Дата").AutoGroup(); pivotTable.PivotFields("Дата").PivotFilters.Add2(Excel.XlPivotFilterType.xlAfter, null, date.AddDays(-1).ToShortDateString(), null, null, null, null, null, true); try { pivotTable.PivotFields("Месяцы").Orientation = Excel.XlPivotFieldOrientation.xlHidden; } catch (Exception) { } } pivotTable.RowGrand = false; pivotTable.ColumnGrand = false; pivotTable.DisplayFieldCaptions = false; pivotTable.PivotFields("(Всего)").NumberFormat = "0,00"; pivotTable.PivotFields("(Занято)").NumberFormat = "0,00"; //pivotTable.PivotFields("(% занятых слотов)").NumberFormat = "0,0%"; pivotTable.PivotSelect("' % занятых слотов'", Excel.XlPTSelectionMode.xlDataAndLabel, true); xlApp.Selection.FormatConditions.AddColorScale(3); xlApp.Selection.FormatConditions(xlApp.Selection.FormatConditions.Count).SetFirstPriority(); xlApp.Selection.FormatConditions[1].ColorScaleCriteria[1].Type = Excel.XlConditionValueTypes.xlConditionValueLowestValue; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[1].FormatColor.Color = 5287936; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[1].FormatColor.TintAndShade = 0; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[2].Type = Excel.XlConditionValueTypes.xlConditionValuePercentile; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[2].Value = 65; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[2].FormatColor.Color = 8711167; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[2].FormatColor.TintAndShade = 0; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[3].Type = Excel.XlConditionValueTypes.xlConditionValueHighestValue; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[3].FormatColor.Color = 255; xlApp.Selection.FormatConditions[1].ColorScaleCriteria[3].FormatColor.TintAndShade = 0; xlApp.Selection.FormatConditions[1].ScopeType = Excel.XlPivotConditionScope.xlDataFieldScope; pivotTable.PivotFields("Порядок сортировки").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Порядок сортировки").Position = 1; pivotTable.PivotFields("Порядок сортировки").Subtotals = new bool[] { false, false, false, false, false, false, false, false, false, false, false, false }; pivotTable.PivotFields("Порядок сортировки").LayoutForm = Excel.XlLayoutFormType.xlTabular; pivotTable.PivotFields("Отделение").ShowDetail = false; if (!removeCrossing) { pivotTable.PivotFields("Пересечение").ShowDetail = false; } pivotTable.PivotFields("Филиал").ShowDetail = false; pivotTable.DisplayErrorString = true; wsPivote.Range["A1"].Select(); wb.ShowPivotTableFieldList = false; wsPivote.Range["C1"].Select(); try { xlApp.Selection.Ungroup(); } catch (Exception) {} }
private static void AddPivotTableReferralUsage(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp) { string pivotTableName = @"RefUsage"; Excel.Worksheet wsPivote = wb.Sheets["Использование направлений"]; int rowsUsed = ws.UsedRange.Rows.Count; wsPivote.Activate(); Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, "Данные!R1C1:R" + rowsUsed + "C44", 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); //pivotTable.PivotFields("Дата").Orientation = Excel.XlPivotFieldOrientation.xlRowField; //pivotTable.PivotFields("Дата").Position = 1; pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = 1; pivotTable.PivotFields("Отделение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Отделение").Position = 2; pivotTable.PivotFields("ФИО Сотрудника").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("ФИО Сотрудника").Position = 3; pivotTable.PivotFields("Услуга").Orientation = Excel.XlPivotFieldOrientation.xlPageField; pivotTable.PivotFields("Услуга").Position = 1; pivotTable.PivotFields("Услуга").CurrentPage = "Итого по услугам"; //pivotTable.PivotFields("Услуга").PivotItems("Итого по услугам").Visible = true; //pivotTable.PivotFields("Услуга").EnableMultiplePageItems = false; pivotTable.AddDataField(pivotTable.PivotFields("ФИО Пациента"), "Кол-во приемов", Excel.XlConsolidationFunction.xlCount); pivotTable.PivotFields("Кол-во приемов").NumberFormat = "# ##0"; pivotTable.AddDataField(pivotTable.PivotFields("Стоимость, всего"), "Сумма оказанных услуг", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Сумма оказанных услуг").NumberFormat = "# ##0,00 ?"; pivotTable.CalculatedFields().Add("СрЧек", "='Стоимость, всего'/'Кол-во приемов, исходных'", true); pivotTable.PivotFields("СрЧек").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю СрЧек").NumberFormat = "# ##0,00 ?"; pivotTable.PivotFields("Сумма по полю СрЧек").Caption = "СрЧек (по приемам)"; pivotTable.AddDataField(pivotTable.PivotFields("Refid"), "Кол-во созданных направлений", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во приемов").NumberFormat = "# ##0"; pivotTable.AddDataField(pivotTable.PivotFields("Schedid"), "Кол-во записей (по направлениям)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во записей (по направлениям)").NumberFormat = "# ##0"; pivotTable.AddDataField(pivotTable.PivotFields("Treatcode2"), "Кол-во приемов (по направлениям)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во приемов (по направлениям)").NumberFormat = "# ##0"; pivotTable.CalculatedFields().Add("% Исполнено направлений_", "=Treatcode2/Refid", true); pivotTable.PivotFields("% Исполнено направлений_").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % Исполнено направлений_").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю % Исполнено направлений_").Caption = "% Исполнено направлений"; pivotTable.PivotFields("Отделение").ShowDetail = false; pivotTable.PivotFields("Филиал").ShowDetail = false; //pivotTable.PivotFields("Дата").ShowDetail = false; wb.ShowPivotTableFieldList = false; //pivotTable.DisplayFieldCaptions = false; wsPivote.Range["A1"].Select(); }
private static void AddPivotTableReferralResult(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp) { string pivotTableName = @"RefResult"; Excel.Worksheet wsPivote = wb.Sheets["Реализация направлений"]; int rowsUsed = ws.UsedRange.Rows.Count; wsPivote.Activate(); Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, "Данные!R1C1:R" + rowsUsed + "C44", 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); //pivotTable.PivotFields("Дата").Orientation = Excel.XlPivotFieldOrientation.xlRowField; //pivotTable.PivotFields("Дата").Position = 1; pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = 1; pivotTable.AddDataField(pivotTable.PivotFields("Refid"), "Кол-во направлений (всего)", Excel.XlConsolidationFunction.xlCount); pivotTable.PivotFields("Кол-во направлений (всего)").NumberFormat = "# ##0"; pivotTable.AddDataField(pivotTable.PivotFields("Schedid"), "Кол-во записей (по направлениям)", Excel.XlConsolidationFunction.xlCount); pivotTable.PivotFields("Кол-во записей (по направлениям)").NumberFormat = "# ##0"; pivotTable.CalculatedFields().Add("% Записей_", "='Кол-во записей'/'Кол-во приемов, исходных'", true); pivotTable.PivotFields("% Записей_").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % Записей_").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю % Записей_").Caption = "% Записей"; pivotTable.AddDataField(pivotTable.PivotFields("Treatcode2"), "Кол-во приемов (по направлениям)", Excel.XlConsolidationFunction.xlCount); pivotTable.PivotFields("Кол-во приемов (по направлениям)").NumberFormat = "# ##0"; pivotTable.CalculatedFields().Add("% Приемов (по направлениям)_", "='Кол-во приемов, по направлениям'/'Кол-во приемов, исходных'", true); pivotTable.PivotFields("% Приемов (по направлениям)_").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % Приемов (по направлениям)_").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю % Приемов (по направлениям)_").Caption = "% Приемов (по направлениям)"; pivotTable.AddDataField(pivotTable.PivotFields("Стоимость, всего2"), "Сумма оказанных услуг (по направлениям)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Сумма оказанных услуг (по направлениям)").NumberFormat = "# ##0,00 ?"; pivotTable.AddDataField(pivotTable.PivotFields("Уникальность пациента, исходный прием"), "Кол-во уникальных пациентов (всего)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во уникальных пациентов (всего)").NumberFormat = "# ##0 ?"; pivotTable.AddDataField(pivotTable.PivotFields("Уникальность пациента, запись"), "Кол-во уникальных пациентов (запись)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во уникальных пациентов (запись)").NumberFormat = "# ##0"; pivotTable.CalculatedFields().Add("% Записанных пациентов_", "='Уникальность пациента, запись'/'Уникальность пациента, исходный прием'", true); pivotTable.PivotFields("% Записанных пациентов_").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % Записанных пациентов_").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю % Записанных пациентов_").Caption = "% Записанных пациентов"; pivotTable.AddDataField(pivotTable.PivotFields("Уникальность пациента, прием по направлению"), "Кол-во уникальных пациентов (прием по направлениям)", Excel.XlConsolidationFunction.xlSum); pivotTable.PivotFields("Кол-во уникальных пациентов (прием по направлениям)").NumberFormat = "# ##0"; pivotTable.CalculatedFields().Add("% Принятых по направлению пациентов_", "='Уникальность пациента, прием по направлению'/'Уникальность пациента, исходный прием'", true); pivotTable.PivotFields("% Принятых по направлению пациентов_").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % Принятых по направлению пациентов_").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю % Принятых по направлению пациентов_").Caption = "% Принятых по направлению пациентов"; //ActiveSheet.PivotTables("RefResult").CalculatedFields.Add "% Записей", "='Кол-во записей'/'Кол-во приемов, исходных'", True //ActiveSheet.PivotTables("RefResult").PivotFields("% Записей").Orientation = xlDataField //ActiveSheet.PivotTables("RefResult").CalculatedFields.Add "% Приемов (по направлениям)", "='Кол-во приемов, по направлениям'/'Кол-во приемов, исходных'", True //ActiveSheet.PivotTables("RefResult").PivotFields("% Приемов (по направлениям)").Orientation = xlDataField //ActiveSheet.PivotTables("RefResult").CalculatedFields.Add "% Записанных пациентов", "='Уникальность пациента, запись'/'Уникальность пациента, исходный прием'", True //ActiveSheet.PivotTables("RefResult").PivotFields("% Записанных пациентов").Orientation = xlDataField //ActiveSheet.PivotTables("RefResult").CalculatedFields.Add "% Принятых по направлению пациентов", "='Уникальность пациента, прием по направлению'/'Уникальность пациента, исходный прием'", True //ActiveSheet.PivotTables("RefResult").PivotFields("% Принятых по направлению пациентов").Orientation = xlDataField pivotTable.PivotFields("Услуга").Orientation = Excel.XlPivotFieldOrientation.xlPageField; pivotTable.PivotFields("Услуга").Position = 1; pivotTable.PivotFields("Услуга").CurrentPage = "All"; pivotTable.PivotFields("Услуга").PivotItems("Итого по услугам").Visible = false; pivotTable.PivotFields("Услуга").EnableMultiplePageItems = true; //pivotTable.AddDataField(pivotTable.PivotFields("№ ИБ"), "Кол-во записей", Excel.XlConsolidationFunction.xlCount); //pivotTable.PivotFields("Дата").ShowDetail = false; wb.ShowPivotTableFieldList = false; //pivotTable.DisplayFieldCaptions = false; pivotTable.HasAutoFormat = false; wsPivote.Columns["B:L"].ColumnWidth = 15; wsPivote.Range["B3:L3"].VerticalAlignment = Excel.Constants.xlTop; wsPivote.Range["B3:L3"].WrapText = true; wsPivote.Range["A1"].Select(); }
private static void MesUsageAddPivotTable(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp) { ws.Cells[1, 1].Select(); string pivotTableName = @"MesUsagePivotTable"; Excel.Worksheet wsPivote = wb.Sheets["Сводная таблица"]; Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, ws.UsedRange, 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); pivotTable.PivotFields("Тип приема").Orientation = Excel.XlPivotFieldOrientation.xlPageField; pivotTable.PivotFields("Тип приема").Position = 1; pivotTable.PivotFields("Тип оплаты приема").Orientation = Excel.XlPivotFieldOrientation.xlPageField; pivotTable.PivotFields("Тип оплаты приема").Position = 2; pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = 1; pivotTable.PivotFields("Подразделение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Подразделение").Position = 2; pivotTable.PivotFields("ФИО врача").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("ФИО врача").Position = 3; pivotTable.AddDataField(pivotTable.PivotFields("Прием"), "Кол-во приемов, для которых загружен список МЭС", Excel.XlConsolidationFunction.xlSum); pivotTable.AddDataField(pivotTable.PivotFields("Есть направление, созданное с использованием МЭС"), "Кол-во приемов с направлением, созданным с использованием МЭС", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("% приемов с направлением, созданным с использованием МЭС", "='Есть направление, созданное с использованием МЭС' /Прием", true); pivotTable.PivotFields("% приемов с направлением, созданным с использованием МЭС").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % приемов с направлением, созданным с использованием МЭС").Caption = " % приемов с направлением, созданным с использованием МЭС"; pivotTable.PivotFields(" % приемов с направлением, созданным с использованием МЭС").NumberFormat = "0,00%"; pivotTable.AddDataField(pivotTable.PivotFields("Есть направление, созданное самостоятельно"), "Кол-во приемов с направлениями, созданными самостоятельно", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("% приемов с направлениями, соответствующими МЭС, но созданных самостоятельно", "='Есть направление, созданное самостоятельно' /Прием", true); pivotTable.PivotFields("% приемов с направлениями, соответствующими МЭС, но созданных самостоятельно").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % приемов с направлениями, соответствующими МЭС, но созданных самостоятельно").Caption = " % приемов с направлениями, соответствующими МЭС, но созданных самостоятельно"; pivotTable.PivotFields(" % приемов с направлениями, соответствующими МЭС, но созданных самостоятельно").NumberFormat = "0,00%"; pivotTable.AddDataField(pivotTable.PivotFields("Услуги из всех направлений соответсвуют МЭС на 100%"), "Кол-во приемов, обязательные услуги МЭС соответствуют в направлениях на 100%", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("% приемов, обязательные услуги МЭС в направлениях соответствуют на 100%", "='Услуги из всех направлений соответсвуют МЭС на 100%' /Прием", true); pivotTable.PivotFields("% приемов, обязательные услуги МЭС в направлениях соответствуют на 100%").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю % приемов, обязательные услуги МЭС в направлениях соответствуют на 100%").Caption = " % приемов, обязательные услуги МЭС в направлениях соответствуют на 100%"; pivotTable.PivotFields(" % приемов, обязательные услуги МЭС в направлениях соответствуют на 100%").NumberFormat = "0,00%"; pivotTable.AddDataField(pivotTable.PivotFields("% Соответствия МЭС"), "Средний % соответствия обязательных услуг МЭС услугам в направлениях", Excel.XlConsolidationFunction.xlAverage); pivotTable.PivotFields("Средний % соответствия обязательных услуг МЭС услугам в направлениях").NumberFormat = "0,00%"; wsPivote.Activate(); wsPivote.Columns["B:I"].Select(); xlApp.Selection.ColumnWidth = 20; wsPivote.Range["B4:I4"].Select(); xlApp.Selection.VerticalAlignment = Excel.Constants.xlTop; xlApp.Selection.WrapText = true; pivotTable.PivotFields("ФИО врача").AutoSort(Excel.XlSortOrder.xlDescending, "Средний % соответствия обязательных услуг МЭС услугам в направлениях"); pivotTable.PivotFields("Подразделение").AutoSort(Excel.XlSortOrder.xlDescending, "Средний % соответствия обязательных услуг МЭС услугам в направлениях"); pivotTable.PivotFields("Филиал").AutoSort(Excel.XlSortOrder.xlDescending, "Средний % соответствия обязательных услуг МЭС услугам в направлениях"); int rowCount = wsPivote.UsedRange.Rows.Count; AddInteriorColor(wsPivote.Range["C4:D" + rowCount], Excel.XlThemeColor.xlThemeColorAccent4); AddInteriorColor(wsPivote.Range["E4:F" + rowCount], Excel.XlThemeColor.xlThemeColorAccent5); AddInteriorColor(wsPivote.Range["G4:H" + rowCount], Excel.XlThemeColor.xlThemeColorAccent6); wsPivote.Range["A1"].Select(); pivotTable.HasAutoFormat = false; pivotTable.PivotFields("Подразделение").ShowDetail = false; pivotTable.PivotFields("Филиал").ShowDetail = false; wb.ShowPivotTableFieldList = false; }
private static void NonAppearanceAddPivotTableGeneral(Excel.Workbook wb, Excel.Worksheet ws, Excel.Application xlApp) { ws.Cells[1, 1].Select(); string pivotTableName = @"NonAppearancePivotTable"; Excel.Worksheet wsPivote = wb.Sheets["Сводная Таблица"]; Excel.PivotCache pivotCache = wb.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, ws.UsedRange, 6); Excel.PivotTable pivotTable = pivotCache.CreatePivotTable(wsPivote.Cells[1, 1], pivotTableName, true, 6); pivotTable = (Excel.PivotTable)wsPivote.PivotTables(pivotTableName); pivotTable.PivotFields("Филиал").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Филиал").Position = 1; pivotTable.PivotFields("Подразделение").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Подразделение").Position = 2; pivotTable.PivotFields("ФИО доктора").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("ФИО доктора").Position = 3; pivotTable.PivotFields("Дата лечения").Orientation = Excel.XlPivotFieldOrientation.xlRowField; pivotTable.PivotFields("Дата лечения").Position = 4; pivotTable.AddDataField(pivotTable.PivotFields("Записано пациентов"), "Всего записано пациентов", Excel.XlConsolidationFunction.xlSum); pivotTable.AddDataField(pivotTable.PivotFields("Отметки без лечений"), "Отметки без лечения (регистратура +, врач – )", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("Общий % Неявок - Отметки без лечений", "= 'Отметки без лечений'/'Записано пациентов'", true); pivotTable.PivotFields("Общий % Неявок - Отметки без лечений").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю Общий % Неявок - Отметки без лечений").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю Общий % Неявок - Отметки без лечений").Caption = "% Неявок - Отметки без лечений (регистратура +, врач – )"; pivotTable.AddDataField(pivotTable.PivotFields("Без отметок и без лечений"), "Без отметок и лечения (регистратура -, врач -)", Excel.XlConsolidationFunction.xlSum); pivotTable.CalculatedFields().Add("Общий % Неявок - Без отметок и без лечений", "= 'Без отметок и без лечений'/'Записано пациентов'", true); pivotTable.PivotFields("Общий % Неявок - Без отметок и без лечений").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю Общий % Неявок - Без отметок и без лечений").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю Общий % Неявок - Без отметок и без лечений").Caption = "% Неявок - Без отметок и без лечений (регистратура -, врач -)"; pivotTable.CalculatedFields().Add("Общий % Неявки", "= ('Отметки без лечений' +'Без отметок и без лечений' )/'Записано пациентов'", true); pivotTable.PivotFields("Общий % Неявки").Orientation = Excel.XlPivotFieldOrientation.xlDataField; pivotTable.PivotFields("Сумма по полю Общий % Неявки").NumberFormat = "0,00%"; pivotTable.PivotFields("Сумма по полю Общий % Неявки").Caption = "% Неявки"; pivotTable.HasAutoFormat = false; pivotTable.PivotFields("ФИО доктора").ShowDetail = false; pivotTable.PivotFields("Подразделение").ShowDetail = false; pivotTable.PivotFields("Филиал").ShowDetail = false; pivotTable.DisplayFieldCaptions = false; wb.ShowPivotTableFieldList = false; }