找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice
中级会员   /  发表于:2019-4-16 14:34:47
板凳
本帖最后由 bingdaoice 于 2019-4-30 21:11 编辑

1、通过  fpSpread1.ActiveSheet.Models.Data.Changed += Data_Changed;
能获取到公式自动计算事件,但是获取到的值是计算后的值,我想获取到改变前的值。
2、通过以下代码添加行,并复制上一行的数据和格式时出错,提示“无法绘制-内存不足”
Spread_Recd.ActiveSheet.Protect = false;
            int Row = Spread_Recd.ActiveSheet.Cells["标准器"].Row.Index;
            int Col = Spread_Recd.ActiveSheet.Cells["标准器"].Column.Index;
            int RowSpan = Spread_Recd.ActiveSheet.Cells["标准器"].RowSpan;
            Spread_Recd.ActiveSheet.AddRows(Row + 1, RowSpan);
            Spread_Recd.ActiveSheet.Rows[Row + 1].Locked = false;
            Spread_Recd.ActiveSheet.CopyRange(Row, 0, Row + 1, 0, RowSpan, Spread_Recd.ActiveSheet.ColumnCount - 1, false);将最后的dataOnly改为true,可以成功的复制数据,但是合并的列和字体样式等格式信息没有复制,改为false又报“无法绘制-内存不足”的错误。


3、建议在新版本中增加以下方法:
1、IsModified 判断FpSpread是否有改动。(如果有改动方便保存最新信息)
2、CombinOtherFile  合并两个报表文件的方法。这对有些统一格式的模板非常有用。(例如两个模板,A为公共模板,B为用户自定模板,A模就可以只做一个,用来和B合并,这样就大大减少了模板制做的数量)
3、BeforeCellContentChanged,在内容改变之前触发事件,可获得单元格改变前的值。
4、在单元格中设置类型为文本,并勾选了“缩小以显示全部内容”和“自动换行”,内容多了以后只会自动换行,并不会自动缩小。建议当换行都不能显示全部内容以后,就缩小字体并换行来显示全部内容。
5、建议增加SetCellCanPrint是否打印属性,此方法设置后,该单元格即便有内容,打印时仍不打印。
6、建议增加一个AddFormatRows方法,直接可以添加行并复制指定行的信息及格式,包括已多行合并的行及合并的列及单元格的类型。
image.png680745544.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-4-15 17:55:10
沙发
1. 公式变化不会触发控件事件,需要给数据模型绑定事件
            fpSpread1.ActiveSheet.Cells[0, 0].Formula = "A2";
            fpSpread1.ActiveSheet.Models.Data.Changed += Data_Changed;
2. 设置行列Resizable
            fpSpread1.ActiveSheet.Columns[0, 5].Resizable = false;
3. 插入后设置下新行行高和上一行一样,并复制上一行样式
            fpSpread1.ActiveSheet.Rows[5].Height = fpSpread1.ActiveSheet.Rows[4].Height;
            fpSpread1.ActiveSheet.CopyRange(4, 0, 5, 0, 1, 10, false);
4. 暂时没有。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部