public static List <СвободнаяЯчейка> ПолучитьСвободныеЯчейки(Worksheet лист) { List <СвободнаяЯчейка> свободныеЯчейки = ПолучитьСвободныеЯчейкиПоУмолчанию(); Range меткаКодыЯчеек = ПолучитьМеткуИзЛиста(лист); if (меткаКодыЯчеек != null) { Range столбецСКодамиЯчеек = лист.Application.Intersect(меткаКодыЯчеек.EntireColumn, лист.UsedRange); if (меткаКодыЯчеек != null) { foreach (Range клетка in столбецСКодамиЯчеек) { if (клетка.Row > меткаКодыЯчеек.Row) { if (!ДопМетоды.КлеткаПустаИлиСодержитМетку(клетка)) { свободныеЯчейки.Add(new СвободнаяЯчейка(клетка.Value.ToString(), ПолучитьТипЯчейки(клетка))); } if (ДопМетоды.КлеткаПустаИлиСодержитМетку(клетка.Offset[1, 0])) { break; } } } } } return(свободныеЯчейки); }
public Столбец(Range клеткаСтрокиСКодамиСтолбцов, bool являетсяКлючевым) { Console.WriteLine(DateTime.Now + ": столбец " + клеткаСтрокиСКодамиСтолбцов.Value.ToString() + ", начат"); Идентификатор = клеткаСтрокиСКодамиСтолбцов.Value.ToString(); Код = клеткаСтрокиСКодамиСтолбцов.Value.ToString(); НаименованиеЭлемента = ДопМетоды.ПолучитьНаименованиеСтрокиИлиСтолбца(клеткаОбластиСКодами: клеткаСтрокиСКодамиСтолбцов, поискДляСтроки: false); Тег = МенеджерНастроек.Настройки.Теги.ПрефиксСтолбца.Value + ДопМетоды.ПолучитьТегПоМетке(клеткаСтрокиСКодамиСтолбцов, false) == "" ? ДопМетоды.ПолучитьТег(Идентификатор) : ДопМетоды.ПолучитьТегПоМетке(клеткаСтрокиСКодамиСтолбцов, false); ЯвлетсяКлючевым = являетсяКлючевым; ТипСтолбца = ПолучитьТипСтолбца(клеткаСтрокиСКодамиСтолбцов); тип = ТипСтолбца.GetType().Name; Описание = ДопМетоды.ПолучитьСриализованныйТип(ТипСтолбца); Console.WriteLine(DateTime.Now + ": столбец " + клеткаСтрокиСКодамиСтолбцов.Value.ToString() + ", закончен"); }
private string ПолучитьНаименованиеТаблицы(int порядковыйНомерЛиста) { if (меткаНаименование != null) { if (ДопМетоды.ПолучитьНаименованиеПоМетке(меткаНаименование, out string наименование)) { return(наименование); } } return("Таблица" + порядковыйНомерЛиста); }
public СвободнаяЯчейка(string кодЯчейки, object типЯчейки) { Идентификатор = кодЯчейки; Код = кодЯчейки; ТипЯчейки = типЯчейки; тип = ТипЯчейки.GetType().Name; Тег = МенеджерНастроек.Настройки.Теги.ПрефиксСвободнойЯчейки.Value + ДопМетоды.ПолучитьТег(Идентификатор); Описание = ДопМетоды.ПолучитьСриализованныйТип(ТипЯчейки); }
public Строка(Range клеткаСтолбцаСКодамиСтрок) { Console.WriteLine(DateTime.Now + ": строка " + клеткаСтолбцаСКодамиСтрок.Value.ToString() + ", начата"); Идентификатор = клеткаСтолбцаСКодамиСтрок.Value.ToString(); Код = клеткаСтолбцаСКодамиСтрок.Value.ToString(); НаименованиеЭлемента = ДопМетоды.ПолучитьНаименованиеСтрокиИлиСтолбца(клеткаСтолбцаСКодамиСтрок, true); Тег = МенеджерНастроек.Настройки.Теги.ПрефиксСтроки.Value + ДопМетоды.ПолучитьТегПоМетке(клеткаСтолбцаСКодамиСтрок, true) == "" ? ДопМетоды.ПолучитьТег(Идентификатор) : ДопМетоды.ПолучитьТегПоМетке(клеткаСтолбцаСКодамиСтрок, true); Console.WriteLine(DateTime.Now + ": строка " + клеткаСтолбцаСКодамиСтрок.Value.ToString() + ", закончена"); }
public Таблица(Worksheet листКниги, int порядковыйНомерЛиста) { ЛистКниги = листКниги; НайтиМеткиНаЛисте(); Строки = ПолучитьСтрокиТаблицы(); Столбцы = ПолучитьСтолбцыТаблицы(); Наименование = ПолучитьНаименованиеТаблицы(порядковыйНомерЛиста); Идентификатор = "Таблица" + порядковыйНомерЛиста; Код = "Таблица" + порядковыйНомерЛиста; Тег = МенеджерНастроек.Настройки.Теги.ПрефиксТаблицы.Value + ДопМетоды.ПолучитьТег(Наименование); }
private Столбец[] ПолучитьСтолбцыТаблицы() { if (меткаСтолбцов != null) { List <Столбец> списокСтолбцов = new List <Столбец>(); foreach (Range клеткаСтрокиСКодамиСтолбцов in ЛистКниги.Application.Intersect(меткаСтолбцов.EntireRow, ЛистКниги.UsedRange).Cells) { if (!ДопМетоды.КлеткаПустаИлиСодержитМетку(клеткаСтрокиСКодамиСтолбцов) && клеткаСтрокиСКодамиСтолбцов.Column > меткаСтолбцов.Column) { списокСтолбцов.Add(new Столбец(клеткаСтрокиСКодамиСтолбцов, Динамическая)); } } return(списокСтолбцов.ToArray()); } return(null); }
private Строка[] ПолучитьСтрокиТаблицы() { if (меткаКодыСтрок != null) { List <Строка> списокСтрок = new List <Строка>(); foreach (Range клеткаСтолбцаСКодамиСтрок in ЛистКниги.Application.Intersect(меткаКодыСтрок.EntireColumn, ЛистКниги.UsedRange).Cells) { if (!ДопМетоды.КлеткаПустаИлиСодержитМетку(клеткаСтолбцаСКодамиСтрок) && клеткаСтолбцаСКодамиСтрок.Row > меткаКодыСтрок.Row) { списокСтрок.Add(new Строка(клеткаСтолбцаСКодамиСтрок)); } } return(списокСтрок.ToArray()); } return(null); }
public Мета(Workbook книгаExcel) { КнигаExcel = книгаExcel; НаитиМеткиВКниге(); Наименование = ПолучитьНаименование(); Идентификатор += ДопМетоды.УбратьЗапрещенныеСимволы( $"{(МенеджерНастроек.Настройки.Мета.ЯвляетсяЗапросом.Value ? "З_" : "М_")}{ДопМетоды.ПолучитьТег(Наименование)}", "_", убиратьПунктуацию: true); Группа += DateTime.Today.Year; ДатаНачалаДействия = ДатаНачалаДействия.Replace("0001", DateTime.Today.Year.ToString()); ДатаОкончанияДействия = ДатаОкончанияДействия.Replace("9999", DateTime.Today.Year.ToString()); ДатаПоследнегоИзменения = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss"); Тег = Идентификатор; }
private bool НаименованиеУказаноВШаблоне(out string наименование) { return(ДопМетоды.ПолучитьНаименованиеПоМетке(МеткаНаименование, out наименование)); }
private double ПолучитьВероятностьНаименованиеВЯчейке(Range cell) { double вероятность = 0; вероятность += cell.Value.ToString().Length *МенеджерНастроек.Настройки.Вес.Длина.Value; вероятность += cell.Row * МенеджерНастроек.Настройки.Вес.НомерСтроки.Value; вероятность += cell.Column * МенеджерНастроек.Настройки.Вес.НомерСтолбца.Value; вероятность += ПолучитьКоличествоЯчеекВОбъединении(cell) * МенеджерНастроек.Настройки.Вес.КоличествоЯчеекВОбъединеннойЯчейке.Value; вероятность += cell.Borders[XlBordersIndex.xlEdgeBottom].LineStyle == (int)XlLineStyle.xlLineStyleNone ? 0 : МенеджерНастроек.Настройки.Вес.ГраницаВнизу.Value; вероятность += cell.Borders[XlBordersIndex.xlEdgeTop].LineStyle == (int)XlLineStyle.xlLineStyleNone ? 0 : МенеджерНастроек.Настройки.Вес.ГраницаВверху.Value; вероятность += cell.Borders[XlBordersIndex.xlEdgeLeft].LineStyle == (int)XlLineStyle.xlLineStyleNone ? 0 : МенеджерНастроек.Настройки.Вес.ГраницаСлева.Value; вероятность += cell.Borders[XlBordersIndex.xlEdgeRight].LineStyle == (int)XlLineStyle.xlLineStyleNone ? 0 : МенеджерНастроек.Настройки.Вес.ГраницаСправа.Value; вероятность += cell.HorizontalAlignment == (int)XlHAlign.xlHAlignCenter ? 0 : МенеджерНастроек.Настройки.Вес.ВыравниваниеПоСередине.Value; вероятность += cell.HorizontalAlignment == (int)XlHAlign.xlHAlignLeft ? 0 : МенеджерНастроек.Настройки.Вес.ВыравниваниеСлева.Value; вероятность += cell.HorizontalAlignment == (int)XlHAlign.xlHAlignRight ? 0 : МенеджерНастроек.Настройки.Вес.ВыравниваниеСправа.Value; вероятность += cell.Font.Bold ? МенеджерНастроек.Настройки.Вес.ЖирностьТекста.Value : 0; вероятность += ПолучитьКоличествоПустыхСтрокПодЯчейкой(cell) * МенеджерНастроек.Настройки.Вес.ПустаяСтрокаПодЯчейкой.Value; вероятность += ДопМетоды.СтрокаЯвлетсяЧастоИспользуемой(cell.Value.ToString()) ? МенеджерНастроек.Настройки.Вес.ЧастоИспользуемыйТермин.Value : 0; return(вероятность); }
private static object ПолучитьТипЯчейки(Range клеткаСтолбцаСКодамиЯчеек) { return(ДопМетоды.ПолучитьТип(клеткаСтолбцаСКодамиЯчеек.Offset[0, 1].NumberFormat, false)); }
private object ПолучитьТипСтолбца(Range клеткаСтрокиСКодамиСтолбцов) { return(ДопМетоды.ПолучитьТип(клеткаСтрокиСКодамиСтолбцов.Offset[1, 0].NumberFormat, ЯвлетсяКлючевым)); }