private void BuildArea(XlsArea area, WordDocDef wordDef) { var grid = area as XlsGrid; if (grid != null) { if (grid.Items.Count == 0) { return; } //var tableBuilder = new TableBuilder(grid.GetRows(), grid.GetCols()); var rowNo = 0; var table = wordDef.AddTable(); table.Style = grid.Style; while (!grid.RowDatas.Eof()) { foreach (var gridRow in grid.Items.OfType <XlsRow>()) { BuildTable(gridRow, table, rowNo, 0); } grid.RowDatas.Next(); rowNo++; } wordDef.AddParagraph(String.Empty); return; } foreach (var item in area.Items) { if (item.GetRows() == 0) { wordDef.AddParagraph(String.Empty, item.Style); continue; } BuildItem(item, wordDef); } }
private void BuildItem(XlsItem item, WordDocDef wordDef) { var row = item as XlsRow; if (row != null) { if (row.Items.Count == 0) { return; } if (row.Items.Count == 1 && row.Items[0] is XlsCell) { var cell = (XlsCell)row.Items[0]; var val = cell.GetValue(); wordDef.AddParagraph(val != null ? val.ToString() : String.Empty, cell.Style); return; } /*var tableBuilder = new TableBuilder(row.GetRows(), row.GetCols()); * RowToTableInfo(row, tableBuilder, 0, 0);*/ var table = wordDef.AddTable(); table.Style = row.Style; BuildTable(row, table, 0, 0); return; } var grid = item as XlsGrid; if (grid != null) { if (grid.Items.Count == 0) { return; } //var tableBuilder = new TableBuilder(grid.GetRows(), grid.GetCols()); var rowNo = 0; var table = wordDef.AddTable(); table.Style = grid.Style; while (!grid.RowDatas.Eof()) { foreach (var gridRow in grid.Items.OfType <XlsRow>()) { BuildTable(gridRow, table, rowNo, 0); } grid.RowDatas.Next(); rowNo++; } wordDef.AddParagraph(String.Empty); return; } var area = item as XlsArea; if (area != null) { foreach (var subItem in area.Items) { BuildItem(subItem, wordDef); } } }