你是指25:15及其以后的时间都不需要显示,我的理解对吗?
如果是这样,你调整 hours 参数的值就可以了,实现思路就是通过GetTime返回正确的时间显示形式:
- #region 设置 Spread 属性和数据
- int hours = 20; // 假设时间带总共要显示25个小时
- int time = 4 * 60 + 53; // 起始时间为 04:53
- fpSpread1.AllowDrop = true;
- fpSpread1.DragEnter += new DragEventHandler(fpSpread1_DragEnter);
- fpSpread1.DragDrop += new DragEventHandler(fpSpread1_DragDrop);
- fpSpread1.SelectionChanging += new SelectionChangingEventHandler(fpSpread1_SelectionChanging);
- fpSpread1.HorizontalScrollBar.Visible = false;
- fpSpread1.ActiveSheet.RowHeader.Visible = false;
- fpSpread1.ActiveSheet.Rows.Default.Height = 2;
- fpSpread1.ActiveSheet.RowCount = (4 * hours * 15 + 1);
- fpSpread1.ActiveSheet.ColumnCount = 3;
- fpSpread1.ActiveSheet.Columns[0].Label = "时间带";
- fpSpread1.ActiveSheet.Columns[1].Label = "计划";
- fpSpread1.ActiveSheet.Columns[1].Width = 200;
- fpSpread1.ActiveSheet.Columns[2].Label = "实际";
- fpSpread1.ActiveSheet.Columns[2].Width = 200;
- // 设置第一列单元格数据
- for (int i = 0; i < ((hours * 4) * 15 + 1); i++)
- {
- fpSpread1.ActiveSheet.SetValue(i, 0, GetTime(time + i));
- }
- fpSpread1.ActiveSheet.ClearRange(0, 0, 7, 1, true);
- fpSpread1.ActiveSheet.Models.Span.Add(0, 0, 7, 1);
- for (int i = 0; i < (hours * 4 + 1); i++)
- {
- fpSpread1.ActiveSheet.Models.Span.Add(i * 15 + 7, 0, 15, 1);
- }
- // 设置第一列单元格样式
- fpSpread1.ActiveSheet.Columns[0].Locked = true;
- fpSpread1.ActiveSheet.Columns[0].HorizontalAlignment = CellHorizontalAlignment.Right;
- fpSpread1.ActiveSheet.Columns[0].VerticalAlignment = CellVerticalAlignment.Center;
- fpSpread1.ActiveSheet.Columns[0].Border = new FarPoint.Win.LineBorder(Color.White, 1, false, false, false, true);
- for (int i = 0; i < (hours * 4 + 1); i++)
- {
- fpSpread1.ActiveSheet.Models.Span.Add(i * 15, 1, 15, 1);
- fpSpread1.ActiveSheet.Models.Span.Add(i * 15, 2, 15, 1);
- }
- fpSpread1.ActiveSheet.Rows[0, 8].Visible = false;
- #endregion
- fpSpread1.ActiveSheet.FrozenTrailingRowCount = 1;
- fpSpread1.ActiveSheet.Rows[hours * 4 * 15].Height = 20;
- fpSpread1.ActiveSheet.Rows[hours * 4 * 15].BackColor = Color.Wheat;
- fpSpread1.ActiveSheet.SetValue(hours * 4 * 15, 0, "合计");
复制代码 |