public override void SetCommandStatus(HeaderSettingCommandStatus commandStatus) { base.SetCommandStatus(commandStatus); if (commandStatus == HeaderSettingCommandStatus.SelectCell) { CellRange cellRange = fpSpreadForHeaderSetting.CellRange; int startCellRow = cellRange.Row + cellRange.RowCount - 1; int startCellColumn = cellRange.Column; for (int i = 0; i < cellRange.ColumnCount; i++) { Cell cell = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i]; LineBorder lineBorder = cell.Border as LineBorder; if (lineBorder == null) { goto End; } else if (!lineBorder.Bottom) { goto End; } } Checked = true; return; End: Checked = false; } }
private IBorder GetNewBorder(Cell source_cell, bool left, bool top, bool right, bool bottom) { IBorder border = source_cell.Border; IBorder newBorder = source_cell.Border; if (border is LineBorder) { LineBorder lineBorder = border as LineBorder; newBorder = new LineBorder(lineBorder.Color, lineBorder.Thickness, left, top, right, bottom); } else if (border is BevelBorder) { BevelBorder bevelBorder = border as BevelBorder; newBorder = new BevelBorder(bevelBorder.Type, bevelBorder.Highlight, bevelBorder.Shadow, bevelBorder.Thickness, left, top, right, bottom); } else if (border is ComplexBorder) { ComplexBorder complexBorder = border as ComplexBorder; } else if (border is CompoundBorder) { } else if (border is DoubleLineBorder) { } else if (border is RoundedLineBorder) { } return(newBorder); }
/// <summary> /// 根据CellInfo,绘制Cell。 /// </summary> /// <param name="cellInfoList">CellInfo列表。</param> /// <param name="rowOffSet">起始行。</param> private void DrawCells(List <CellInfo> cellInfoList, int rowOffSet) { foreach (CellInfo cellInfo in cellInfoList) { int row = cellInfo.Row + rowOffSet; int column = cellInfo.Column; int rowSpan = cellInfo.RowSpan; int columnSpan = cellInfo.ColumnSpan; string text = cellInfo.Text; Font font = cellInfo.GetFont(); Color color = cellInfo.GetColor(); LineBorder border = cellInfo.CellBorder.GetBorder(); FarPoint.Win.Spread.CellHorizontalAlignment hAlignment = cellInfo.HAligment; FarPoint.Win.Spread.CellVerticalAlignment vAlignment = cellInfo.VAligment; FarPoint.Win.Spread.Cell cell = sheetMain.Cells[row, column]; cell.RowSpan = rowSpan; cell.ColumnSpan = columnSpan; cell.Value = text; cell.Font = font; cell.ForeColor = color; cell.Border = border; cell.HorizontalAlignment = hAlignment; cell.VerticalAlignment = vAlignment; } }
public void SetCellBorder(LineBorder lineBorder) { if (lineBorder == null) { return; } left = lineBorder.Left; top = lineBorder.Top; right = lineBorder.Right; bottom = lineBorder.Bottom; }
/// <summary> /// 本方法给表格设边框线并同时单元格内容水平垂直均居中 /// </summary> /// <param name="obj_sheet"></param> public void Sheet_GridandCenter(FarPoint.Win.Spread.SheetView obj_sheet) { //定义一个边框线 LineBorder border = new LineBorder(Color.Black); int rowcount = obj_sheet.Rows.Count; int colcount = obj_sheet.Columns.Count; for (int col = 0; col < colcount; col++) { for (int row = 0; row < rowcount; row++) { //设表格线 obj_sheet.Cells[row, col].Border = border; } //水平和垂直均居中对齐 obj_sheet.Columns[col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center; obj_sheet.Columns[col].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; } }
protected override void OnClick(EventArgs e) { CellRange cellRange = fpSpreadForHeaderSetting.CellRange; int startCellRow = cellRange.Row + cellRange.RowCount - 1; int startCellColumn = cellRange.Column; if (Checked) { for (int i = 0; i < cellRange.ColumnCount; i++) { Cell cell = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i]; LineBorder lineBorder = cell.Border as LineBorder; if (lineBorder.Bottom) { cell.Border = new LineBorder(Color.Black, 1, lineBorder.Left, lineBorder.Top, lineBorder.Right, false); } } Checked = false; } else { for (int i = 0; i < cellRange.ColumnCount; i++) { Cell cell = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i]; LineBorder lineBorder = cell.Border as LineBorder; if (lineBorder == null) { cell.Border = lineBorderBottom; } else if (!lineBorder.Bottom) { cell.Border = new LineBorder(Color.Black, 1, lineBorder.Left, lineBorder.Top, lineBorder.Right, true); } } Checked = true; } base.OnClick(e); }
/// <summary> /// �������������߿��߲�ͬʱ��Ԫ������ˮƽ��ֱ������ /// </summary> /// <param name="obj_sheet"></param> public void Sheet_GridandCenter(FarPoint.Win.Spread.SheetView obj_sheet) { //����һ���߿��� LineBorder border = new LineBorder(Color.Black); int rowcount = obj_sheet.Rows.Count; int colcount = obj_sheet.Columns.Count; for (int col = 0; col < colcount; col++) { for (int row = 0; row < rowcount; row++) { //������ obj_sheet.Cells[row, col].Border = border; } //ˮƽ�ʹ�ֱ�����ж��� obj_sheet.Columns[col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center; obj_sheet.Columns[col].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; } }
/// <summary> /// 绘制报表列。 /// </summary> private void DrawReportColumnList() { int reportColumnRowIndex = ReportColumnRowIndex; if (reportColumnRowIndex < 0) { return; } LineBorder border1 = new LineBorder(Color.Black, 1, true, true, true, true); LineBorder border2 = new LineBorder(Color.Black, 1, false, true, true, true); #region 先清空报表列所在行。 for (int i = 0; i < sheetMain.Columns.Count; i++) { FarPoint.Win.Spread.Cell cell = sheetMain.Cells[reportColumnRowIndex, i]; cell.Value = null; cell.Tag = null; cell.Border = null; cell.Locked = true; } #endregion if (canEditColumn) { List <Column> columnList = sheetMain.Rows[reportColumnRowIndex].Tag as List <Column>; if (columnList.Count > sheetMain.Columns.Count) { sheetMain.Columns.Count = columnList.Count; FpChanged(HeaderSettingFpSpreadChangedType.ColumnCountChanged); } foreach (Column column in columnList) { int i = column.SortID; FarPoint.Win.Spread.Cell cell = sheetMain.Cells[reportColumnRowIndex, i]; if (i == 0) { cell.Border = border1; } else { cell.Border = border2; } cell.Value = column.Name; cell.Tag = column; cell.CellType = normalTextCellType; cell.Font = column.GetHeaderFont(); cell.ForeColor = column.GetHeaderColor(); cell.HorizontalAlignment = column.HeaderHAligment; cell.VerticalAlignment = column.HeaderVAligment; cell.Locked = false; } } else { for (int i = 0; i < sheetMain.Columns.Count; i++) { if (i == 0) { sheetMain.Cells[reportColumnRowIndex, i].Border = border1; } else { sheetMain.Cells[reportColumnRowIndex, i].Border = border2; } sheetMain.Cells[reportColumnRowIndex, i].CellType = normalTextCellType; } } }