找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice

中级会员

44

主题

208

帖子

608

积分

中级会员

积分
608
bingdaoice
中级会员   /  发表于:2020-6-23 15:33  /   查看:3782  /  回复:3
1金币
Spread for WinForms 教程资源集合贴中有“Spread:提示用户单元格内容长度超出了列宽"例子 打开自己的XML文件后,测试失败,当内容超出宽度后不显示#。
附件有我上传的DEMO。
请问如何修改可以达到例子中,超过宽度后显示#
private void Form1_Load(object sender, EventArgs e)
        {
            //fpSpread1.ActiveSheet.Cells[0, 0].Value = "12345679";
            //fpSpread1.ActiveSheet.Cells[1, 0].Value = "12345679123456789123456789";
            fpSpread1.Open(@"D:\bak\126.xml");
            fpSpread1.ActiveSheet.Columns[0].CellType = new CCellType();
        }


        public class CCellType : FarPoint.Win.Spread.CellType.TextCellType
        {
            public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
            {
                // 判断单元格内容是否为空,如果不为空就判断单元格内容是否超过了单元格的宽带
                if (value != null && g.MeasureString(value.ToString(), appearance.Font).Width > r.Width)
                {
                    value = new string('#', value.ToString().Length);
                }


                base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
            }
        }



Spread_Cell.rar

12.08 MB, 下载次数: 397

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-23 18:11:26
沙发
问题已经收到,我排查原因后给您回复
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-1 09:47:49
板凳
请问原因找了吗?版主
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-1 12:24:20
地板
验证了一下,确实是存在这个问题的。
不加载文件的时候添加的单元格数据可以变成#,加载excel或xml后会出现,猜测有可能在加载文档时,spread的一些设置被改变导致了这个问题

我会再研究看看有没有其他 的办法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部