找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadforwindow

注册会员

11

主题

63

帖子

140

积分

注册会员

积分
140

微信认证勋章

spreadforwindow
注册会员   /  发表于:2019-1-21 09:52  /   查看:6758  /  回复:14
复制单元格设置CellType弹出窗口始终是GeneralCellType

14 个回复

倒序浏览
spreadforwindow
注册会员   /  发表于:2019-1-21 09:54:34
沙发
A1 和A2 设置同样的CellType 会有不同

Projects(1).zip

20 MB, 阅读权限: 100, 下载次数: 1

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-21 11:25:03
板凳
您好,CellTypeEditor的第二个参数是设置如果单元格没有celltype应用的默认celltype,因为复制来的单元格有celltype,所以不生效,用下面代码方式设置。

  1. if (common.rm == null)
  2. {
  3.   common.LoadResourceManagerForStrings();
  4. }

  5. var ctd = new CellTypeDlgV3(fpSpread1); // here throw exception
  6. ctd.celltype = DesignerMain.CellTypeEnum.NumberCellType;
  7. ctd.InitValues(fpSpread1.ActiveSheet.ActiveCell.CellType, null);
  8. ctd.ShowDialog();
复制代码
回复 使用道具 举报
spreadforwindow
注册会员   /  发表于:2019-1-21 11:38:46
地板
dexteryao 发表于 2019-1-21 11:25
您好,CellTypeEditor的第二个参数是设置如果单元格没有celltype应用的默认celltype,因为复制来的单元格有 ...

你好;因为我们是复制StyleInfo来复制单元格样式属性;cell.cellType = null  但是StyleInfo.cellType = GeneralCellType;
你这边有没有更好的方式可以复制单元格呢 ?
回复 使用道具 举报
spreadforwindow
注册会员   /  发表于:2019-1-21 11:41:04
5#
dexteryao 发表于 2019-1-21 11:25
您好,CellTypeEditor的第二个参数是设置如果单元格没有celltype应用的默认celltype,因为复制来的单元格有 ...

我是先GetStyleInfo 将得到的StyleInfo
Serializer.LoadObjectXml 得到复制的StyleInfo,这样得到的有默认的CellType
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-21 15:41:50
6#
您好,我测试了没有重现您说的问题,如果单元格本身没有设置过ct,那么序列化后还是null

  1.             fpSpread1.ActiveSheet.Cells[7, 7].ForeColor = Color.Red;
  2.             var oldStyle = fpSpread1.ActiveSheet.GetStyleInfo(7, 7);


  3.            var newStyle = (FarPoint.Win.Spread.StyleInfo)FarPoint.Win.Serializer.LoadObjectXml(typeof(FarPoint.Win.Spread.StyleInfo), FarPoint.Win.Serializer.GetObjectXml(oldStyle, "CopyStyle"), "CopyStyle");

复制代码
回复 使用道具 举报
spreadforwindow
注册会员   /  发表于:2019-1-21 16:09:22
7#
dexteryao 发表于 2019-1-21 15:41
您好,我测试了没有重现您说的问题,如果单元格本身没有设置过ct,那么序列化后还是null

我用的是12.31版本的; 你在我的例子里试下哦;
你调用CopyCell方法 在GetStyleInfo 设置断点 看下CellType确实是有值呢
回复 使用道具 举报
spreadforwindow
注册会员   /  发表于:2019-1-21 16:10:23
8#
dexteryao 发表于 2019-1-21 15:41
您好,我测试了没有重现您说的问题,如果单元格本身没有设置过ct,那么序列化后还是null

我是实例化个新的SheetView CellType是为空的,但是序列化之后确实有了东西
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-21 16:50:44
9#
您好,对您的代码做了调整,并且需要添加LegacyBehaviors


  1.             var spread = new FpSpread( LegacyBehaviors.None);
  2.             var sheet = new SheetView();
  3.             AddCoustomFunction(spread);
  4.             spread.Sheets.Add(sheet);
  5.             CopyCell(sheet);
复制代码
回复 使用道具 举报
spreadforwindow
注册会员   /  发表于:2019-1-21 17:03:25
10#
dexteryao 发表于 2019-1-21 16:50
您好,对您的代码做了调整,并且需要添加LegacyBehaviors

我在构造函数加了这个参数还是没达到想要的效果。
我的CopyCell函数中在执行setStyleInfo后,sourceCell.CellType为null,destCell.CellType却是GeneralCellType,设想的应该destCell跟sourceCell一致
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部