internal void OnDateViewExportColumnData(DataColumn dataColumn, CellNode sheetCell, object dataValue, object context) { if (DateViewExportColumnData != null) { DateViewExportColumnData(dataColumn, sheetCell, dataValue, context); } }
public CellNode GetCellByIndex(int cellIndex) { CellNode result = null; int currentIndex = 0; for (int i = 0; i < Cells.Count; i++) { CellNode cell = Cells[i]; if (cell.Index > 0) { currentIndex = cell.Index; } else { currentIndex++; } if (currentIndex == cellIndex) { result = cell; break; } } return(result); }
private static RowNode BuildHeaderRow(DataColumnCollection columns) { RowNode rowNode = new RowNode(); foreach (DataColumn column in columns) { CellNode cellNode = new CellNode(); cellNode.Data.Value = column.ColumnName; rowNode.Cells.Add(cellNode); } return(rowNode); }
public override void FromXmlNode(XmlNode node) { base.FromXmlNode(node); this.Height = XmlHelper.GetAttributeValue(node, "Height", 0.0); this.AutoFitHeight = XmlHelper.GetAttributeValue(node, "AutoFitHeight", true); XmlNodeList cellNodes = node.SelectNodes("ss:Cell", Namespaces.GetNamespaceManager()); foreach (XmlNode cellNode in cellNodes) { CellNode cell = new CellNode(); cell.FromXmlNode(cellNode); Cells.Add(cell); } }
private static void FillIntoWorksheet(WorksheetNode worksheet, DataView view, DataViewExportOptions options) { foreach (DataColumn column in view.Table.Columns) { if (options.IgnoredColumnNames.Exists(c => c == column.ColumnName) == false) { ColumnNode columnNode = new ColumnNode(); columnNode.Caption = column.ColumnName; options.OnDateViewExportColumnHeader(column, columnNode, options.Context); worksheet.Table.Columns.Add(columnNode); } } bool isFirstRow = true; if (options.ExportColumnHeader) { RowNode rowNode = BuildHeaderRow(view.Table.Columns); if (options.StartRow > 0) { rowNode.Index = options.StartRow; } worksheet.Table.Rows.Add(rowNode); isFirstRow = false; } foreach (DataRowView drv in view) { RowNode rowNode = new RowNode(); if (isFirstRow) { if (options.StartRow > 0) { rowNode.Index = options.StartRow; } isFirstRow = false; } bool isFirstColumn = true; foreach (DataColumn column in view.Table.Columns) { if (options.IgnoredColumnNames.Exists(c => c == column.ColumnName) == false) { CellNode cellNode = new CellNode(); cellNode.Data.Type = GetCellDataType(column); object dataValue = drv[column.ColumnName]; if (dataValue != null) { if (cellNode.Data.Type == CellDataType.DateTime && (dataValue is DateTime)) { cellNode.Data.Value = string.Format("{0:yyyy-MM-ddTHH:mm:ss}", dataValue); cellNode.StyleID = "NormalDateTime"; } else { cellNode.Data.Value = dataValue.ToString(); } } if (isFirstColumn) { if (options.StartColumn > 0) { cellNode.Index = options.StartColumn; } isFirstColumn = false; } options.OnDateViewExportColumnData(column, cellNode, dataValue, options.Context); rowNode.Cells.Add(cellNode); } } worksheet.Table.Rows.Add(rowNode); } }
//导出带数据的Excel private static void FillMatrixRowsToWorksheet(WorkbookNode workbook, SOARolePropertyRowCollection rows) { NamedLocationCollection locations = workbook.Names.ToLocations(); locations.SortByColumn(); WorksheetNode worksheet = workbook.Worksheets[GetWorksheet(locations)]; int startRowIndex = GetStartRow(locations); int currentRowIndex = -1; foreach (SOARolePropertyRow matrixRow in rows) { RowNode row = new RowNode(); if (currentRowIndex == -1) { currentRowIndex = startRowIndex + 1; row.Index = currentRowIndex; } for (int i = 0; i < locations.Count; i++) { CellNode cell = new CellNode(); CellLocation location = locations[i]; SOARolePropertyValue propertyValue = matrixRow.Values.FindByColumnName(location.Name); string dataValue = null; if (propertyValue != null) dataValue = propertyValue.Value; else { switch (location.Name.ToLower()) { case "operatortype": dataValue = matrixRow.OperatorType.ToString(); break; case "operator": dataValue = matrixRow.Operator; break; } } if (dataValue != null) cell.Data.Value = dataValue; else cell.Data.Value = string.Empty; row.Cells.Add(cell); } worksheet.Table.Rows.Add(row); } }
/// <summary> /// 填充Excel Xml的标题列 /// </summary> /// <param name="workbook"></param> /// <param name="definition"></param> /// <param name="propertySheetName"></param> private static void FillWorkSheetTitle(WorkbookNode workbook, SOARolePropertyDefinitionCollection definition, string propertySheetName) { WorksheetNode worksheet = GetWorksheetFromWorkbook(workbook, propertySheetName); worksheet.Names.Clear(); workbook.Names.Clear(); worksheet.Table.Rows[1].Cells.Clear(); int row = 3; int column = 1; RowNode titleRow = null; if (worksheet.Table.Rows.Count > 0) titleRow = worksheet.Table.Rows[1]; else { titleRow = new RowNode(); worksheet.Table.Rows.Add(titleRow); } foreach (SOARolePropertyDefinition dd in definition) { NamedRangeNode range = new NamedRangeNode(); range.Name = dd.Name; range.RefersTo = string.Format("={0}!R{1}C{2}", worksheet.Name, row, column); workbook.Names.Add(range); CellNode cell = new CellNode(); cell.Data.Value = dd.Description.IsNotEmpty() ? dd.Description : dd.Name; cell.StyleID = "s17"; titleRow.Cells.Add(cell); column++; } }
private static void FillIntoWorksheet(WorksheetNode worksheet, DataView view, DataViewExportOptions options) { foreach (DataColumn column in view.Table.Columns) { if (options.IgnoredColumnNames.Exists(c => c == column.ColumnName) == false) { ColumnNode columnNode = new ColumnNode(); columnNode.Caption = column.ColumnName; options.OnDateViewExportColumnHeader(column, columnNode, options.Context); worksheet.Table.Columns.Add(columnNode); } } bool isFirstRow = true; if (options.ExportColumnHeader) { RowNode rowNode = BuildHeaderRow(view.Table.Columns); if (options.StartRow > 0) rowNode.Index = options.StartRow; worksheet.Table.Rows.Add(rowNode); isFirstRow = false; } foreach (DataRowView drv in view) { RowNode rowNode = new RowNode(); if (isFirstRow) { if (options.StartRow > 0) rowNode.Index = options.StartRow; isFirstRow = false; } bool isFirstColumn = true; foreach (DataColumn column in view.Table.Columns) { if (options.IgnoredColumnNames.Exists(c => c == column.ColumnName) == false) { CellNode cellNode = new CellNode(); cellNode.Data.Type = GetCellDataType(column); object dataValue = drv[column.ColumnName]; if (dataValue != null) { if (cellNode.Data.Type == CellDataType.DateTime && (dataValue is DateTime)) { cellNode.Data.Value = string.Format("{0:yyyy-MM-ddTHH:mm:ss}", dataValue); cellNode.StyleID = "NormalDateTime"; } else cellNode.Data.Value = dataValue.ToString(); } if (isFirstColumn) { if (options.StartColumn > 0) cellNode.Index = options.StartColumn; isFirstColumn = false; } options.OnDateViewExportColumnData(column, cellNode, dataValue, options.Context); rowNode.Cells.Add(cellNode); } } worksheet.Table.Rows.Add(rowNode); } }
private static RowNode BuildHeaderRow(DataColumnCollection columns) { RowNode rowNode = new RowNode(); foreach (DataColumn column in columns) { CellNode cellNode = new CellNode(); cellNode.Data.Value = column.ColumnName; rowNode.Cells.Add(cellNode); } return rowNode; }