From cf54488e710587d4d8e21260f0e361f8105c3732 Mon Sep 17 00:00:00 2001 From: vasmaae Date: Sun, 8 Dec 2024 13:48:29 -0800 Subject: [PATCH] add TODOs, bold font and solid borders --- .../Reports/ExcelBuilder.cs | 63 ++++++++++++++++++- .../Reports/PdfBuilder.cs | 8 ++- .../Reports/WordBuilder.cs | 3 +- 3 files changed, 69 insertions(+), 5 deletions(-) diff --git a/PIbd-23_Gutorov_I.A._IT-Company/Reports/ExcelBuilder.cs b/PIbd-23_Gutorov_I.A._IT-Company/Reports/ExcelBuilder.cs index a3546fd..7a45064 100644 --- a/PIbd-23_Gutorov_I.A._IT-Company/Reports/ExcelBuilder.cs +++ b/PIbd-23_Gutorov_I.A._IT-Company/Reports/ExcelBuilder.cs @@ -140,7 +140,17 @@ internal class ExcelBuilder Val = new EnumValue(FontSchemeValues.Minor) } }); - // TODO добавить шрифт с жирным + fonts.Append(new DocumentFormat.OpenXml.Spreadsheet.Font + { + FontSize = new FontSize() { Val = 11 }, + FontName = new FontName() { Val = "Calibri" }, + FontFamilyNumbering = new FontFamilyNumbering() { Val = 2 }, + FontScheme = new FontScheme() + { + Val = new EnumValue(FontSchemeValues.Minor) + }, + Bold = new Bold() { Val = true } + }); workbookStylesPart.Stylesheet.Append(fonts); // Default Fill @@ -164,7 +174,14 @@ internal class ExcelBuilder BottomBorder = new BottomBorder(), DiagonalBorder = new DiagonalBorder() }); - // TODO добавить настройку с границами + borders.Append(new Border + { + LeftBorder = new LeftBorder() { Style = BorderStyleValues.Thin }, + RightBorder = new RightBorder() { Style = BorderStyleValues.Thin }, + TopBorder = new TopBorder() { Style = BorderStyleValues.Thin }, + BottomBorder = new BottomBorder() { Style = BorderStyleValues.Thin }, + DiagonalBorder = new DiagonalBorder() + }); workbookStylesPart.Stylesheet.Append(borders); // Default cell format and a date cell format @@ -183,6 +200,48 @@ internal class ExcelBuilder WrapText = true } }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 1, + BorderId = 0, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Left, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 0, + BorderId = 1, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Left, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 1, + BorderId = 1, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Left, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); // TODO дополнить форматы workbookStylesPart.Stylesheet.Append(cellFormats); } diff --git a/PIbd-23_Gutorov_I.A._IT-Company/Reports/PdfBuilder.cs b/PIbd-23_Gutorov_I.A._IT-Company/Reports/PdfBuilder.cs index 938bbc3..f29afd8 100644 --- a/PIbd-23_Gutorov_I.A._IT-Company/Reports/PdfBuilder.cs +++ b/PIbd-23_Gutorov_I.A._IT-Company/Reports/PdfBuilder.cs @@ -1,6 +1,7 @@ using MigraDoc.DocumentObjectModel; using MigraDoc.DocumentObjectModel.Shapes.Charts; using MigraDoc.Rendering; +using System.Text; namespace PIbd_23_Gutorov_I.A._IT_Company.Reports; @@ -66,6 +67,8 @@ internal class PdfBuilder public void Build() { + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + var renderer = new PdfDocumentRenderer(true) { Document = _document @@ -77,7 +80,8 @@ internal class PdfBuilder private void DefineStyles() { - // TODO задать стиль для заголовка (жирный) + var headerStyle = _document.Styles.AddStyle("NormalBold", "Normal"); + headerStyle.Font.Bold = true; + headerStyle.Font.Size = 14; } - } diff --git a/PIbd-23_Gutorov_I.A._IT-Company/Reports/WordBuilder.cs b/PIbd-23_Gutorov_I.A._IT-Company/Reports/WordBuilder.cs index a5bb8e4..fe6fde7 100644 --- a/PIbd-23_Gutorov_I.A._IT-Company/Reports/WordBuilder.cs +++ b/PIbd-23_Gutorov_I.A._IT-Company/Reports/WordBuilder.cs @@ -27,7 +27,8 @@ internal class WordBuilder { var paragraph = _body.AppendChild(new Paragraph()); var run = paragraph.AppendChild(new Run()); - // TODO bold text + var runProperties = run.AppendChild(new RunProperties()); + runProperties.AppendChild(new Bold()); run.AppendChild(new Text(header)); return this;