本帖最后由 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方法,直接可以添加行并复制指定行的信息及格式,包括已多行合并的行及合并的列及单元格的类型。
|