private void populateCacheRow(CTable cacheRow, CMergeCellParam mergedParam, CRow row, CColumn col) { String text = col.GetText().Text; ArrayList columns = cacheRow.GetChildArray("COLUMNS"); CTable cacheColumn = new CTable(""); columns.Add(cacheColumn); int fromCell = mergedParam.FromCell + 1; int toCell = mergedParam.ToCell + 1; int span = mergedParam.CellMergedCount; cacheColumn.SetFieldValue("TEXT", text); cacheColumn.SetFieldValue("FROM_CELL", fromCell.ToString()); cacheColumn.SetFieldValue("TO_CELL", toCell.ToString()); cacheColumn.SetFieldValue("CELL_SPAN", span.ToString()); Boolean isBold = row.GetFontWeight().Equals(System.Windows.FontWeights.Bold); String dt = col.getDataType(); System.Windows.HorizontalAlignment align = col.GetHorizontalAlignment(); cacheColumn.SetFieldValue("IS_BOLD", isBold.ToString()); cacheColumn.SetFieldValue("TYPE", dt); cacheColumn.SetFieldValue("TEXT_ALIGN", align.ToString()); cacheColumn.SetFieldValue("IS_MERGED", mergedParam.IsMerged.ToString()); }
public void AddRow(CRow row) { String name = row.GetName(); if (name.Contains("GLB_HEADER_LEVEL0")) { currentPage++; } if ((currentPage > 1) && name.Contains("HEADER")) { //Skip header if page greater than 1 return; } currentRow++; ArrayList arr = (ArrayList)rowMergedParam[name]; if (arr == null) { return; } int cnt = row.GetColumnCount(); String rowText = String.Format("{0}", name); CTable cacheRow = new CTable("ROW"); cacheRow.SetFieldValue("ROW_ID", currentRow.ToString()); cacheRow.SetFieldValue("ROW_TYPE", row.GetName()); cacheRow.AddChildArray("COLUMNS", new ArrayList()); cacheRows.Add(cacheRow); for (int i = 0; i < cnt; i++) { CMergeCellParam mergedParam = (CMergeCellParam)arr[i]; CColumn col = row.GetColumn(i); String text = col.GetText().Text; populateCacheRow(cacheRow, mergedParam, row, col); } String dummy = rowText; }
private ArrayList createCellMergeParam(CRow baseRow, CRow row) { ArrayList arr = new ArrayList(); int colCnt = row.GetColumnCount(); int end = -1; for (int i = 0; i < colCnt; i++) { CColumn col = row.GetColumn(i); Tuple <int, int, int> t = getStartEndLen(col, baseRow, end + 1); int start = t.Item1; int length = t.Item3; end = t.Item2; CMergeCellParam cell = new CMergeCellParam(start, end, length); arr.Add(cell); } return(arr); }