博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DevExpress.XtraGrid 导出文本的bug
阅读量:7235 次
发布时间:2019-06-29

本文共 1292 字,大约阅读时间需要 4 分钟。

 

作者:不详 出处:Byeah's Blog  2011/4/8 15:47:38 阅读 434  次

  DevExpress.XtraGrid.GridControl有多个ExportToXXX的方法,提供多种格式的导出,极大节省了人力。如果 数据集里面有bool的数据,Grid就会显示成checkbox的形式,导出成pdf、excel当然是没有问题。但导出txt和csv格式时,对应 bool字段的值就会空白,没有任何数据导出。这个bug可以在XtraGrid的demo里面看到。导出数据空白的问题在官方资料中目前没有找到资料, 只好自己做了。

 (全球第一.NET工作流引擎)  (完美的用户界面解决方案)
 (图表报表生成控件)  (慧都独家)

   以下是导出txt的代码,csv也是稍加修改即可实现。

private void ExportGridToTxt(GridView view, string path, char spliter)

         {
             if (view != null)
             {
                 StreamWriter sw = null;
                 try
                 {
                     sw = new StreamWriter(path, false, Encoding.Default);
                     StringBuilder sb = new StringBuilder();
                     for (int i = 0; i < view.Columns.Count; i++)
                     {
                         sb.Append(view.Columns[i].Caption + spliter);
                     }
                     sb.AppendLine();
                     for (int i = 0; i < view.RowCount; i++)
                     {
                         DataRow dr = view.GetDataRow(i);
                         for (int j = 0; j < view.Columns.Count; j++)
                         {
                             GridColumn col = view.Columns[j];
                             if (col.ColumnType == typeof(bool))
                             {
                                 bool val = (bool)(view.GetRowCellValue(i, col));
                                 sb.Append((bool)val ? "Y" : "N");
                             }
                             else
                             {
                                 string displayText = view.GetRowCellDisplayText(i, col);
                                 sb.Append(displayText);
                             }
                             if (j != view.Columns.Count - 1)
                             {
                                 sb.Append(spliter);
                             }
                             else
                             {
                                 sb.AppendLine();
                             }
                         }
                     }
                     sw.Write(sb.ToString());
                     sw.Flush();
                 }
                 finally
                 {
                     if (sw != null)
                     {
                         sw.Close();
                     }
                 }
             }
            
         }

转载于:https://www.cnblogs.com/gaoxuzhao/archive/2011/10/14/2212203.html

你可能感兴趣的文章
判断单链表是否有环的两种方法
查看>>
网页上用js禁用鼠标右键
查看>>
【&#9733;】微信之于QQ的市场哲学
查看>>
抓取某一个网站整站的记录
查看>>
Android依赖管理与私服搭建
查看>>
常用正则表达式大全!(例如:匹配中文、匹配html)
查看>>
结合抓包工具深入分析slb、vpc网络配置ftp服务
查看>>
关于db link权限分配的苦旅(二)
查看>>
CentOS7下如何查看vsftpd服务的状态
查看>>
阿里云Redis华北5 (呼和浩特)开放售卖
查看>>
SAP后台配置中“公司”与“公司代码”概念的不同
查看>>
JSP application对象
查看>>
使用消息系统进行微服务间通讯时,如何保证数据一致性
查看>>
MailTest
查看>>
索引键的唯一性(4/4):非唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Java---俄罗斯方块小游戏
查看>>
spring boot 调试 - 热部署
查看>>
Python installation
查看>>
C# 带用户密码访问网络共享
查看>>
Win10之UWP的数据存储
查看>>