找回密码
 立即注册

QQ登录

只需一步,快速开始

刘君

中级会员

141

主题

335

帖子

942

积分

中级会员

积分
942

活字格认证

刘君
中级会员   /  发表于:2015-1-29 10:16  /   查看:4943  /  回复:3
用OpenExcel导入excel后,点击单元格出现“无法绘制,内存不足”的错误。附上程序,请帮助。

MySpread.rar

274.34 KB, 下载次数: 187

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-29 11:26:00
沙发
回复 1楼刘君的帖子

使用你附件的程序进行测试,没有重现该问题。
测试步骤:
1.打开程序的bin->Debug->MySpread.exe
2.在运行界面,单击打开文件,打开我本地的一个excel文件,后缀为.xls。
3.任意的选择一个单元格,比如(1,1),点击单元格。
4.测试输入一些字符。
5.切换点击其他单元格。
结果:均为产生绘制错误。
你能将你的必然出错的excel文件发给我们,我们可以帮你做下测试。也建议你在其他的机器上尝试,排除你计算机本身的影响。

另外你的gcdn账号:刘君 已经成功升级为金牌账号。享受金牌账号的权利,请妥善保管好你的账号,这是你享受金牌服务的唯一凭证,如果有问题请联系我们。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
刘君
中级会员   /  发表于:2015-1-29 12:07:00
板凳
不是每次点击都会生产错误,多点几次吧
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-29 15:18:00
地板
回复 3楼刘君的帖子

问题重现。
重现的必然步骤和导入excel文件无关,是设置单元格的Font,并点击某个单元格触发SelectionChanged事件。
出错的原因是代码逻辑写的有问题。
在SelectionChanged事件的时候,调用自定义的font_SelectionChanged方法,并且将字体dispose掉。如图所示:

spread_font.png

将如下代码注销,就不会出错:
  1. if (hasCellFont) { cellFont.Dispose(); }
复制代码


当fpSpread.Font有值的时候,却调用cellFont.Dispose()方法注销掉。spread无法绘制,会抛出异常。

根据你的工程,你的业务逻辑比较复杂,所以需要你自己根据业务逻辑和需求,重新修改你的代码。

评分

参与人数 1满意度 +5 收起 理由
刘君 + 5

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部