找回密码
 立即注册

QQ登录

只需一步,快速开始

沐华丶
注册会员   /  发表于:2023-2-20 16:45:01
10#
沐华丶 发表于 2023-2-20 16:40
是单元格赋值的。

sv.AddRows(row, 1);
            for (int colum = 0; colum <= 15; colum += 4, cardIndex++)
            {
                sv.Cells[row, colum].CellType = textCellType;
                sv.Cells[row, colum].Value = "预约时间";
                sv.Cells[row, colum].Border = GetBorder(1, 0, 0, 1);
                sv.Cells[row, colum + 1].CellType = textCellType;
                sv.Cells[row, colum + 1].Value = infos[cardIndex].StartDate;
                sv.Cells[row, colum + 1].Border = GetBorder(0, 0, 0, 1);
                sv.Cells[row, colum + 2].CellType = textCellType;
                sv.Cells[row, colum + 2].Value = infos[cardIndex].EndDate;
                sv.Cells[row, colum + 2].Border = GetBorder(0, 0, 1, 1);
                sv.Columns[colum + 3].Width = 5;

            }
            cardIndex = cardIndex - 4;
            sv.AddRows(row, 1);
            for (int colunmIndex = 0; colunmIndex <= 15; colunmIndex += 4, cardIndex++)
            {
                sv.Cells[row, colunmIndex].CellType = textCellType;
                sv.Cells[row, colunmIndex].BackColor = Color.AliceBlue;
                sv.Cells[row, colunmIndex].Value = infos[cardIndex].PreLmt;
                sv.Cells[row, colunmIndex].Border = GetBorder(1, 1, 0, 0);
                sv.Cells[row, colunmIndex + 1].CellType = textCellType;
                sv.Cells[row, colunmIndex + 1].Value = "已预约";
                sv.Cells[row, colunmIndex + 1].Border = GetBorder(0, 1, 0, 0);
                sv.Cells[row, colunmIndex + 2].CellType = textCellType;
                sv.Cells[row, colunmIndex + 2].Value = infos[cardIndex].PreAppointed + "人";
                sv.Cells[row, colunmIndex + 2].Border = GetBorder(0, 1, 1, 0);
                sv.Columns[colunmIndex + 3].Width = 5;
            }
代码是这个
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-20 17:12:58
11#
image.png168615111.png
我要如何才能将其设置为一个卡片呢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-20 18:44:16
12#
设置为一个卡片是什么意思呢?是想设置样式还是?
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-21 08:48:16
13#
Richard.Ma 发表于 2023-2-20 18:44
设置为一个卡片是什么意思呢?是想设置样式还是?

就是我想将这个三列两行设置为一个区域,点击的时候选中这一个区域
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-21 10:02:25
14#
那就是合并单元格。可以尝试下面的代码,

  1. fpSpread1.ActiveSheet.AddSpanCell(3, 3, 1, 2);
复制代码
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-21 10:53:53
15#
本帖最后由 沐华丶 于 2023-2-21 10:59 编辑
Richard.Ma 发表于 2023-2-21 10:02
那就是合并单元格。可以尝试下面的代码,
应该我操作有误 我去试试
image.png990815429.png
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-21 11:18:03
16#
Richard.Ma 发表于 2023-2-21 10:02
那就是合并单元格。可以尝试下面的代码,

但这样的话,值似乎就只会显示一个单元格?
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-22 10:08:17
18#
本帖最后由 沐华丶 于 2023-2-22 10:20 编辑

image.png971781616.png
我尝试在我原有代码的基础上,在selectionChanging事件中,去重新获取选择区域,但结果似乎并非那么理想。
for (int columnIndex = 0; columnIndex < rowCount; columnIndex++)
            {
                sv.AddRows(row, 1);
                for (int colum = 0; colum <= 15; colum += 4, cardIndex++)
                {
                    if (cardIndex < infos.Count)
                    {
                        sv.Cells[row, colum].CellType = textCellType;
                        sv.Cells[row, colum].Value = "预约时间";
                        //sv.Cells[row, colum].BackColor = Color.AliceBlue;
                        sv.Cells[row, colum].Border = GetBorder(1, 0, 0, 1);
                        sv.Cells[row, colum + 1].CellType = textCellType;
                        sv.Cells[row, colum + 1].Value = infos[cardIndex].StartDate;
                        //sv.Cells[row, colum + 1].BackColor = Color.AliceBlue;
                        sv.Cells[row, colum + 1].Border = GetBorder(0, 0, 0, 1);
                        sv.Cells[row, colum + 2].CellType = textCellType;
                        sv.Cells[row, colum + 2].Value = infos[cardIndex].EndDate;
                        //sv.Cells[row, colum + 2].BackColor = Color.AliceBlue;
                        sv.Cells[row, colum + 2].Border = GetBorder(0, 0, 1, 1);
                        sv.Columns[colum + 3].Width = 5;
                    }                    
                }
                cardIndex = cardIndex - 4;
                sv.AddRows(row, 1);
                for (int colunmIndex = 0; colunmIndex <= 15; colunmIndex += 4, cardIndex++)
                {
                    if (cardIndex < infos.Count)
                    {
                        sv.Cells[row, colunmIndex].CellType = textCellType;
                        //sv.Cells[row, colunmIndex].BackColor = Color.AliceBlue;
                        sv.Cells[row, colunmIndex].Value = "可预约人数:" + infos[cardIndex].PreLmt ;
                        sv.Cells[row, colunmIndex].Border = GetBorder(1, 1, 0, 0);
                        sv.Cells[row, colunmIndex + 1].CellType = textCellType;
                        sv.Cells[row, colunmIndex + 1].Value = "      已预约人数:";
                        //sv.Cells[row, colunmIndex + 1].BackColor = Color.AliceBlue;
                        sv.Cells[row, colunmIndex + 1].Border = GetBorder(0, 1, 0, 0);
                        sv.Cells[row, colunmIndex + 2].CellType = textCellType;
                        sv.Cells[row, colunmIndex + 2].Value = infos[cardIndex].PreAppointed ;
                        sv.Cells[row, colunmIndex + 2].ForeColor = Color.Red;
                        //sv.Cells[row, colunmIndex + 2].BackColor = Color.AliceBlue;
                        sv.Cells[row, colunmIndex + 2].Border = GetBorder(0, 1, 1, 0);
                        sv.Columns[colunmIndex + 3].Width = 5;
                    }                    
                }
                sv.AddRows(row, 1);
                sv.Rows[row].Height = 5;               
            }
        }   

        /// <summary>
        /// 画边框
        /// </summary>
        /// <param name="left"></param>
        /// <param name="top"></param>
        /// <param name="right"></param>
        /// <param name="bottom"></param>
        /// <returns></returns>
        private ComplexBorder GetBorder(int left, int top, int right, int bottom)
        {
            ComplexBorder complexBorder = new ComplexBorder(
                left > 0 ? new ComplexBorderSide(Color.FromArgb(184, 200, 200), left, System.Drawing.Drawing2D.DashStyle.Solid) : new ComplexBorderSide(Color.Black, left)
                , top > 0 ? new ComplexBorderSide(Color.FromArgb(184, 200, 200), top, System.Drawing.Drawing2D.DashStyle.Solid) : new ComplexBorderSide(Color.Black, top)
                , right > 0 ? new ComplexBorderSide(Color.FromArgb(184, 200, 200), right, System.Drawing.Drawing2D.DashStyle.Solid) : new ComplexBorderSide(Color.Black, right)
                , bottom > 0 ? new ComplexBorderSide(Color.FromArgb(184, 200, 200), bottom, System.Drawing.Drawing2D.DashStyle.Solid) : new ComplexBorderSide(Color.Black, bottom));
            return complexBorder;
        }
private void FpAppointSelectionChanging(object sender, SelectionChangingEventArgs e)
        {
            
            fpAppoint.ActiveSheet.AddSelection(2, 3, 2, 3);
        }
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-22 13:35:30
19#
是设置了选中区域没有用还是其他请, 另外,需要你先报把选区情况的
回复 使用道具 举报
沐华丶
注册会员   /  发表于:2023-2-22 18:15:43
20#
Richard.Ma 发表于 2023-2-22 13:35
是设置了选中区域没有用还是其他请, 另外,需要你先报把选区情况的

现在是的状态是行被选中, 要怎么设置 才会在我点击某个位置的时候保证这一行都不背选中呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部