找回密码
 立即注册

QQ登录

只需一步,快速开始

silenceyy2010

高级会员

3

主题

10

帖子

1585

积分

高级会员

积分
1585

活字格认证

silenceyy2010
高级会员   /  发表于:2013-4-19 10:00  /   查看:11460  /  回复:9
代码如下:
if (this.saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string myPath = this.saveFileDialog1.FileName;
                dgvPage3.SaveExcel(myPath);
                MessageBox.Show("数据下载成功!");
            }
个人猜测可能是由于数据量有点大造成的(数据文件1000行左右,有照片),想知道有没有解决方法!

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-4-19 10:40:00
沙发
回复 1楼silenceyy2010的帖子

能否把你的 Demo 上传到论坛查看,我这边协助测试。
回复 使用道具 举报
silenceyy2010
高级会员   /  发表于:2013-4-19 13:16:00
板凳
现在是少量数据下载可以,但是数据量大一点就报错。
举例:
20行数据,100张照片,每张照片50k左右=》没问题。
1000行数据,无照片=》没问题。
20行数据,10张照片,每张200k左右=》没问题。

但是50行以上,50张照片,照片200k左右,就不行呢。。。
数据是从公司数据库取的,所以发不了demo给您~~
回复 使用道具 举报
silenceyy2010
高级会员   /  发表于:2013-4-19 16:21:00
地板
我又试了一下这个:
dgvPage3.SaveExcel(myPath, FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
发现数据能下载但是照片无法下载呢,这个是干什么用的呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-19 18:22:00
5#
回复 4楼silenceyy2010的帖子

这个枚举参数的作用是把 Spread 保存到 Excel 2007 (OfficeOpen XML) 格式。
关于数据量过大无法正常保存问题,正在处理中,有结果回复。
回复 使用道具 举报
sakeryu
初级会员   /  发表于:2013-4-25 14:10:00
6#
我们项目的客户有的也遇到这个错误。。不知道什么原因。貌似和楼主说的数据量无关。同样的表格样式,有的用户表格中只填了一个单元格数据也另存失败。但是有的客户把表格的所有单元格都填满数,也不会失败的。找不到解决办法?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-25 17:20:00
7#
回复 6楼sakeryu的帖子

sakeryu 你好,
不知道保存失败报错信息是?
如果能够提供更多线索,将有助于我们调查问题。
谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-25 17:21:00
8#
回复 4楼silenceyy2010的帖子

将照片格式进行转换后,问题已解决!
更正后代码如下:
if (File.Exists(dt.Rows[iRow][iCol].ToString()))
                        {
                            System.Drawing.Image image = System.Drawing.Image.FromFile(dt.Rows[iRow][iCol].ToString());
                            Bitmap bmp = new Bitmap(image);
                            MemoryStream ms = new MemoryStream();
                            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                            Image NewImage = Image.FromStream(ms);
                            dgv.Sheets[0].Cells[iRow, iCol].Value = NewImage;
                            dgv.Sheets[0].Rows[iRow].Height = 50;
                            image.Dispose();                 
                        }
更正后数据文件20-30M左右,下载完全没有问题,且速度很快~
回复 使用道具 举报
sakeryu
初级会员   /  发表于:2013-4-26 09:17:00
9#
回复 7楼iceman的帖子

就是楼主的那个提示: Error saving Excel File
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-26 11:12:00
10#
回复 9楼sakeryu的帖子

感谢你的回复。
根据目前线索我这边无法重现问题。在什么情况下会出现该异常?能否发一个重现问题的 Demo 到论坛调试呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部