private static TableCellProperties WordCellProperties(Campus.Report.Base.TableStyle style) { var leftBorder = new DocumentFormat.OpenXml.Wordprocessing.LeftBorder(); var rightBorder = new DocumentFormat.OpenXml.Wordprocessing.RightBorder(); var topBorder = new DocumentFormat.OpenXml.Wordprocessing.TopBorder(); var bottomBorder = new DocumentFormat.OpenXml.Wordprocessing.BottomBorder(); var insideHorizontalBorder = new DocumentFormat.OpenXml.Wordprocessing.InsideHorizontalBorder(); var insideVerticalBorder = new DocumentFormat.OpenXml.Wordprocessing.InsideVerticalBorder(); leftBorder.Val = WordLineType(style.BorderLine); rightBorder.Val = WordLineType(style.BorderLine); topBorder.Val = WordLineType(style.BorderLine); bottomBorder.Val = WordLineType(style.BorderLine); insideHorizontalBorder.Val = WordLineType(style.BorderLine); insideVerticalBorder.Val = WordLineType(style.BorderLine); leftBorder.Color = ColorToRgb(style.BorderColor); rightBorder.Color = ColorToRgb(style.BorderColor); topBorder.Color = ColorToRgb(style.BorderColor); bottomBorder.Color = ColorToRgb(style.BorderColor); insideHorizontalBorder.Color = ColorToRgb(style.BorderColor); insideVerticalBorder.Color = ColorToRgb(style.BorderColor); leftBorder.Size = WordBorderWaight(style.BorderLine); rightBorder.Size = WordBorderWaight(style.BorderLine); topBorder.Size = WordBorderWaight(style.BorderLine); bottomBorder.Size = WordBorderWaight(style.BorderLine); insideHorizontalBorder.Size = WordBorderWaight(style.BorderLine); insideVerticalBorder.Size = WordBorderWaight(style.BorderLine); var cellprop = new DocumentFormat.OpenXml.Wordprocessing.TableCellProperties(); var shading = new DocumentFormat.OpenXml.Wordprocessing.Shading(); shading.Val = DocumentFormat.OpenXml.Wordprocessing.ShadingPatternValues.Clear; shading.Fill = ColorToRgb(style.Foreground); var tableCellBorders = new DocumentFormat.OpenXml.Wordprocessing.TableCellBorders { LeftBorder = leftBorder, RightBorder = rightBorder, TopBorder = topBorder, BottomBorder = bottomBorder, InsideHorizontalBorder = insideHorizontalBorder, InsideVerticalBorder = insideVerticalBorder }; cellprop.Shading = shading; cellprop.TableCellBorders = tableCellBorders; return(cellprop); }
public Wordprocessing.Table CreateTable(int columnsCount) { Wordprocessing.Table table1 = new Wordprocessing.Table(); WorkbookPart workbookPart = _spreadsheetDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); DocumentFormat.OpenXml.Spreadsheet.SheetData sheetData = worksheetPart.Worksheet.Elements<DocumentFormat.OpenXml.Spreadsheet.SheetData>().First(); //Задание свойств таблицы Wordprocessing.TableProperties tableProperties1 = new Wordprocessing.TableProperties(); Wordprocessing.TableStyle tableStyle1 = new Wordprocessing.TableStyle() { Val = "TableGrid" }; Wordprocessing.TableWidth tableWidth1 = new Wordprocessing.TableWidth() { Width = "0", Type = Wordprocessing.TableWidthUnitValues.Auto }; Wordprocessing.TableBorders tableBorders1 = new Wordprocessing.TableBorders(); Wordprocessing.TopBorder topBorder1 = new Wordprocessing.TopBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; Wordprocessing.LeftBorder leftBorder1 = new Wordprocessing.LeftBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; Wordprocessing.BottomBorder bottomBorder1 = new Wordprocessing.BottomBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; Wordprocessing.RightBorder rightBorder1 = new Wordprocessing.RightBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; Wordprocessing.InsideHorizontalBorder insideHorizontalBorder1 = new Wordprocessing.InsideHorizontalBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; Wordprocessing.InsideVerticalBorder insideVerticalBorder1 = new Wordprocessing.InsideVerticalBorder() { Val = Wordprocessing.BorderValues.Single, Color = "000000", Size = (int)4U, Space = (int)0U }; tableBorders1.Append(topBorder1); tableBorders1.Append(leftBorder1); tableBorders1.Append(bottomBorder1); tableBorders1.Append(rightBorder1); tableBorders1.Append(insideHorizontalBorder1); tableBorders1.Append(insideVerticalBorder1); Wordprocessing.TableLook tableLook1 = new Wordprocessing.TableLook() { Val = "04A0", FirstRow = true, LastRow = false, FirstColumn = true, LastColumn = false, NoHorizontalBand = false, NoVerticalBand = true }; tableProperties1.Append(tableStyle1); tableProperties1.Append(tableWidth1); tableProperties1.Append(tableBorders1); tableProperties1.Append(tableLook1); table1.Append(tableProperties1); //Создание структуры таблицы Wordprocessing.TableGrid tableGrid1 = new Wordprocessing.TableGrid(); Wordprocessing.GridColumn gridColumn = new Wordprocessing.GridColumn() { Width = "9571" }; tableGrid1.Append(gridColumn); table1.Append(tableGrid1); //Добавление информации из Excel int j = 0; foreach (Spreadsheet.Row r in sheetData.Elements<Spreadsheet.Row>()) { j = 0; Wordprocessing.TableRow tableRow1 = new Wordprocessing.TableRow(); foreach (Spreadsheet.Cell c in r.Elements<Spreadsheet.Cell>()) { j++; string value = c.InnerText; if (c.DataType!= null && c.DataType.Value == CellValues.SharedString) { var stringTable = workbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault(); if (stringTable != null) value = stringTable.SharedStringTable.ElementAt(int.Parse(value)).InnerText; } TableRowExtension.AddCell(tableRow1,value); } for (int i=j; i < columnsCount; i++) TableRowExtension.AddCell(tableRow1, ""); table1.Append(tableRow1); } Wordprocessing.Table table2 = doptable(table1); Wordprocessing.Table table3 = doptable2(table2); return table3; }