private void AppendAlignment(W.TableCell cell, TextVerticalAlignment alignment) { TableVerticalAlignmentValues al = TableVerticalAlignmentValues.Center; switch (alignment) { case TextVerticalAlignment.Top: al = TableVerticalAlignmentValues.Top; break; case TextVerticalAlignment.Center: al = TableVerticalAlignmentValues.Center; break; case TextVerticalAlignment.Bottom: al = TableVerticalAlignmentValues.Bottom; break; } cell.TableCellProperties.Append( new W.TableCellVerticalAlignment() { Val = al } ); }
internal static bool GetCellVerticalAlignment(string style, out TableVerticalAlignmentValues alignment) { alignment = TableVerticalAlignmentValues.Top; bool assigned = false; switch (style.ToLower()) { case "top": assigned = true; alignment = TableVerticalAlignmentValues.Top; break; case "middle": assigned = true; alignment = TableVerticalAlignmentValues.Center; break; case "bottom": assigned = true; alignment = TableVerticalAlignmentValues.Bottom; break; } return(assigned); }
/// <summary> /// Создаёт ячейку таблицы. /// </summary> /// <param name="runProperties">Параметры текста.</param> /// <param name="aligment">Вертикальное выравнивание.</param> /// <param name="justification">Горизонтальное выравнивание.</param> /// <param name="text">Текст в ячейке.</param> /// <returns>Ячеёка таблицы.</returns> protected static TableCell CreateTableCell( string text, RunProperties runProperties, TableVerticalAlignmentValues aligment = TableVerticalAlignmentValues.Center, JustificationValues justification = JustificationValues.Center) { var textLines = text.Split(new[] { Environment.NewLine }, StringSplitOptions.None); var tableCell = new TableCell( new TableCellProperties(new TableCellVerticalAlignment { Val = aligment })); foreach (var line in textLines) { tableCell.AppendChild( new Paragraph( new ParagraphProperties( new Justification { Val = justification }, new SpacingBetweenLines { Before = "0", After = "0" }), new Run( runProperties.CloneNode(true), new Text { Text = line, Space = SpaceProcessingModeValues.Preserve }))); } return(tableCell); }
internal static bool GetCellVerticalAlignment(string style, out TableVerticalAlignmentValues alignment) { alignment = TableVerticalAlignmentValues.Top; bool assigned = false; switch (style.ToLower()) { case "top": assigned = true; alignment = TableVerticalAlignmentValues.Top; break; case "middle": assigned = true; alignment = TableVerticalAlignmentValues.Center; break; case "bottom": assigned = true; alignment = TableVerticalAlignmentValues.Bottom; break; } return assigned; }
public static TableCell VerticalAlignment(this TableCell Cell, TableVerticalAlignmentValues Alignment) { Cell.Content() .GetOrPrepend <TableCellProperties>().Content() .GetOrAppend <TableCellVerticalAlignment>() .Val = Alignment; return(Cell); }
private void TestValue(TableVerticalAlignmentValues value) { Apply(new TableCellVerticalAlignment { Val = new EnumValue <TableVerticalAlignmentValues>(value) }); foreach (var cell in CellsInArea) { Assert.AreEqual(value, cell.VerticalAlignment); } }
/// <summary> /// Добавляет к строке таблицы объединённые ячейки. /// </summary> /// <param name="tableRow">Строка таблицы.</param> /// <param name="text">Текст в объединённой ячейки.</param> /// <param name="mergedCells">Количество объединяемых ячеек.</param> /// <param name="runProperties">Параметры текста.</param> /// <param name="aligment">Вертикальное выравнивание.</param> /// <param name="justification">Горизонтальное выравнивание.</param> protected void AppendMergedCellsToRow( TableRow tableRow, string text, int mergedCells, RunProperties runProperties, TableVerticalAlignmentValues aligment = TableVerticalAlignmentValues.Center, JustificationValues justification = JustificationValues.Right) { for (var i = 0; i <= mergedCells; i++) { tableRow.AppendChild( i == 0 ? CreateTableCellForMerging(text, true, runProperties, aligment, justification) : CreateTableCellForMerging(string.Empty, false, runProperties, aligment, justification)); } }
/// <summary> /// Создаёт ячейку таблицы, предназначенную для объединения. /// </summary> /// <param name="text">Текст в ячейке.</param> /// <param name="isFirstCellInMerge">Ячейка является первой по порядку среди объединяемых ячеек.</param> /// <param name="runProperties">Параметры текста.</param> /// <param name="aligment">Вертикальное выравнивание.</param> /// <param name="justification">Горизонтальное выравнивание.</param> /// <returns>Ячейка таблицы для объединения.</returns> private static TableCell CreateTableCellForMerging( string text, bool isFirstCellInMerge, RunProperties runProperties, TableVerticalAlignmentValues aligment, JustificationValues justification) { var cellProperties = new TableCellProperties( new HorizontalMerge { Val = isFirstCellInMerge ? MergedCellValues.Restart : MergedCellValues.Continue }); var cellForMerging = CreateTableCell(text, runProperties, aligment, justification); cellForMerging.AppendChild(cellProperties); return(cellForMerging); }
/// <summary> /// Возвращает ячейку с настройками может применятся для создания строки /// </summary> /// <param name="paragraph">1 Параграф для добавления в ячейку</param> /// <param name="width">Длина ячейки 567 - 1 см </param> /// <param name="type">Тип выравнивания</param> /// <param name="leftmargin">Левый отступ в пикселях</param> /// <param name="rightmargin">Правый отступ в пикселях</param> /// <param name="borders">Стиль отражение границы ячейки</param> /// <param name="gridNumber">Объединение ячеек</param> /// <param name="verticalmerge">1 Начало объединения 2 конец объединения</param> /// <param name="colorHex">Цвет ячейки</param> /// <returns></returns> public static TableCell GenerateCell(Paragraph paragraph, string width, TableWidthUnitValues type, string leftmargin = "0", string rightmargin = "0", TableVerticalAlignmentValues verticalAlignment = TableVerticalAlignmentValues.Bottom, TableCellBorders borders = null, int gridNumber = 0, int verticalmerge = 0, string colorHex = "FFFFFF") { TableCell tableCell = new TableCell(); TableCellProperties tableCellProperties = new TableCellProperties(); TableCellWidth tableCellWidth = new TableCellWidth() { Width = width, Type = type }; GridSpan gridSpan = new GridSpan() { Val = gridNumber }; TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment() { Val = verticalAlignment }; if (verticalmerge == 1) { VerticalMerge vertical = new VerticalMerge() { Val = MergedCellValues.Restart }; tableCellProperties.Append(vertical); } if (verticalmerge == 2) { VerticalMerge vertical = new VerticalMerge() { Val = MergedCellValues.Continue }; tableCellProperties.Append(vertical); } TableCellMargin tableCellMargin = new TableCellMargin(); if (leftmargin != "0") { LeftMargin leftMargin = new LeftMargin() { Width = leftmargin, Type = TableWidthUnitValues.Dxa }; tableCellMargin.Append(leftMargin); } if (rightmargin != "0") { RightMargin rightMargin = new RightMargin() { Width = rightmargin, Type = TableWidthUnitValues.Dxa }; tableCellMargin.Append(rightMargin); } Shading shading = new Shading() { Color = "auto", Fill = colorHex, Val = ShadingPatternValues.Clear }; tableCellProperties.Append(shading); tableCellProperties.Append(tcVA); tableCellProperties.Append(tableCellWidth); tableCellProperties.Append(tableCellMargin); tableCellProperties.Append(gridSpan); if (borders != null) { tableCellProperties.Append(borders); } tableCell.Append(tableCellProperties); tableCell.Append(paragraph); return(tableCell); }
/// <summary> /// Возвращает ячейку с настройками может применятся для создания строки /// </summary> /// <param name="paragraph">Коллекция параграффов для добавления в ячейку</param> /// <param name="number">Количество объединенных ячеек</param> /// <param name="width">Длина ячейки</param> /// <param name="type">Тип выравнивания</param> /// <param name="leftmargin">Левый отступ в пикселях</param> /// <param name="rightmargin">Правый отступ в пикселях</param> /// <param name="borders">Отражение границы ячейки</param> /// <returns></returns> public static TableCell GenerateCell(ref ObservableCollection <Paragraph> paragraph, string width, TableWidthUnitValues type, string leftmargin = "0", string rightmargin = "0", TableVerticalAlignmentValues verticalAlignment = TableVerticalAlignmentValues.Bottom, TableCellBorders borders = null, int number = 0) { TableCell tableCell = new TableCell(); TableCellProperties tableCellProperties = new TableCellProperties(); TableCellWidth tableCellWidth = new TableCellWidth() { Width = width, Type = type }; GridSpan gridSpan = new GridSpan() { Val = number }; TableCellVerticalAlignment tcVA = new TableCellVerticalAlignment() { Val = verticalAlignment }; TableCellMargin tableCellMargin = new TableCellMargin(); if (leftmargin != "0") { LeftMargin leftMargin = new LeftMargin() { Width = leftmargin, Type = TableWidthUnitValues.Dxa }; tableCellMargin.Append(leftMargin); } if (rightmargin != "0") { RightMargin rightMargin = new RightMargin() { Width = rightmargin, Type = TableWidthUnitValues.Dxa }; tableCellMargin.Append(rightMargin); } tableCellProperties.Append(tcVA); tableCellProperties.Append(tableCellWidth); tableCellProperties.Append(tableCellMargin); tableCellProperties.Append(gridSpan); if (borders != null) { tableCellProperties.Append(borders); } tableCell.Append(tableCellProperties); AddParagraphCell(ref tableCell, ref paragraph); return(tableCell); }
public static DocumentFormat.OpenXml.Wordprocessing.TableVerticalAlignmentValues ToOOxml(this TableVerticalAlignmentValues value) { return((DocumentFormat.OpenXml.Wordprocessing.TableVerticalAlignmentValues)(int) value); }