public static TableBorderStyle GetBorder(this Word.TableBorders borders) { if (borders == null) { return(TableBorderStyle.Default); } var top = borders.TopBorder.ToPen(); var right = borders.RightBorder.ToPen(); var bottom = borders.BottomBorder.ToPen(); var left = borders.LeftBorder.ToPen(); var insideH = borders.InsideHorizontalBorder.ToPen(TableBorderStyle.Default.InsideHorizontal); var insideV = borders.InsideVerticalBorder.ToPen(TableBorderStyle.Default.InsideVertical); return(new TableBorderStyle(top, right, bottom, left, insideH, insideV)); }
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; }