From 8750c3a305ac4f115cc73f4bb9382ecbcd9d95b4 Mon Sep 17 00:00:00 2001 From: ElEgEv <112943269+ElEgEv@users.noreply.github.com> Date: Tue, 10 Oct 2023 00:38:20 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=BC=D0=B5=D0=B6=D1=83?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=BE=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/ComponentBigTable.cs | 16 ++++++++++------ .../Components/SupportClasses/SetDataTable.cs | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/VisualComponentsLib/Components/ComponentBigTable.cs b/VisualComponentsLib/Components/ComponentBigTable.cs index c50cad5..3faf865 100644 --- a/VisualComponentsLib/Components/ComponentBigTable.cs +++ b/VisualComponentsLib/Components/ComponentBigTable.cs @@ -10,6 +10,7 @@ using System.Text; using System.Threading.Tasks; using VisualComponentsLib.Components.SupportClasses; using Spire.Doc.Formatting; +using System.CodeDom; namespace VisualComponentsLib.Components { @@ -52,10 +53,10 @@ namespace VisualComponentsLib.Components //создание таблицы private void AddTable (SetDataTable setDataTable) { - /*if (!CheckData(setDataTable.DataList)) + if (!CheckData(setDataTable.DataList)) { throw new Exception("Не все ячейки заполнены"); - }*/ + } using (var document = WordprocessingDocument.Open(setDataTable.FilePath, true)) { @@ -157,6 +158,11 @@ namespace VisualComponentsLib.Components } )); + if (string.IsNullOrEmpty(val.Name)) + { + throw new Exception("Некорректное заполнение заголовка таблицы"); + } + tc.Append(new Paragraph(new Run(new Text(val.Name)))); _tr.Append(tc); @@ -165,11 +171,11 @@ namespace VisualComponentsLib.Components } table.Append(_tr); - //увеличиваем счётчик на 1, т. к. в списке только два значения indexHeaderHeigh++; indexHeaderWidth = 0; + int numberColunm = 0; //генерация тела таблицы for (var i = 1; i < setDataTable.DataList.Count; i++) @@ -206,8 +212,6 @@ namespace VisualComponentsLib.Components #endregion - - doc.Body.Append(header); doc.Body.Append(table); @@ -224,7 +228,7 @@ namespace VisualComponentsLib.Components foreach (var value in data.GetType().GetProperties()) { //для простоты проверки приводим значение каждого поля к типу string - if(string.IsNullOrEmpty(dataList.GetType().GetField(value.Name).GetValue(data).ToString())) + if(string.IsNullOrEmpty(value.GetValue(data).ToString())) { return false; } diff --git a/VisualComponentsLib/Components/SupportClasses/SetDataTable.cs b/VisualComponentsLib/Components/SupportClasses/SetDataTable.cs index c205c39..9befcb1 100644 --- a/VisualComponentsLib/Components/SupportClasses/SetDataTable.cs +++ b/VisualComponentsLib/Components/SupportClasses/SetDataTable.cs @@ -26,12 +26,12 @@ namespace VisualComponentsLib.Components.SupportClasses List widthCol, List dataList) { FilePath = filePath; - FileHeader = fileHeader; + FileHeader = fileHeader; HeightRow = heightRow; WidthCol = widthCol; DataList = dataList; - //DataList = DataList.GroupBy(field => field.GetType().GetProperties().First().Name).Select(field => field.ToList()); + DataList.GroupBy(field => dataList[0].GetType().GetProperties().First()).Select(field => field.ToList()); } ////группировка элементов списка по первому полю