找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman
社区贡献组   /  发表于:2012-4-11 17:55:00
11#

回复 9# lzh3452 的帖子

lzh3452 你好,可以做如下设置:

  1.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
  2.             combo.ItemData = strval;
  3.             fpSpread1.Sheets[0].Columns[3].CellType = combo;
  4.             fpSpread1.Sheets[0].Columns[3].Locked = true;‘

  5.             //导出之前转换为 EditorValue.String
  6.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.String;
  7.             this.fpSpread1.SaveExcel(filename);
  8.            //导出之后转换为 EditorValue.ItemData
  9.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-11 18:05:00
12#

回复 9# lzh3452 的帖子

原因为:导出 Excel 时,取得是 Spread DataModel ,ComboBoxCellType 的 EditorValue 会被写入对应单元格 DataModel。所以会导出 Index。所以就需要在导出之前设置 DataModel 对应 EditorValue.String
回复 使用道具 举报
lzh3452
论坛元老   /  发表于:2012-4-11 18:06:00
13#

回复 11# iceman 的帖子

这不是要每个Cell都得设置么?我有很多条的,而且每一条都有一个CellType,还有就是怎么能直接改一个Cell的CellType?只能创建一个新的么?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-11 18:12:00
14#

回复 13# lzh3452 的帖子

如果 CellType 有共性,当然可以同一 CellType 设置给不同单元格,但是如果要求 CellType 内的元素不同,则需要重新创建。进而只能逐一设置。
回复 使用道具 举报
lzh3452
论坛元老   /  发表于:2012-4-11 18:58:00
15#

回复 14# iceman 的帖子

我是先逐列找ComboBox类型的列,然后找到一个,就对这一列的每一个Cell都重新设置
((FarPoint.Win.Spread.CellType.ComboBoxCellType)sheetview.Cells[row, col].CellType).EditorValue = EditorValue.ItemData;
保存后在同样的方法设回来,就不用创建新的CellType了,也能最大限度的减少循环次数,没什么问题就这么弄了吧,目前也看不出性能是否会有影响,先这样吧。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-12 09:02:00
16#

回复 15# lzh3452 的帖子

恩,这也是个好方法,感谢 lzh3452 把问题的解决方案反馈给我们~
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部