博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DevExpress.XtraGrid 导出文本的bug
阅读量:7237 次
发布时间: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

你可能感兴趣的文章
我的第一个python脚本——hello,python
查看>>
JAVA 敏感词过滤
查看>>
svn 调用脚本(三)
查看>>
<Power Shell>01 四则运算和数组简单使用
查看>>
vsftpd配置文件详解
查看>>
mysql的root密码重置
查看>>
如何快速复制含有代码语法高亮的文章
查看>>
通过Git WebHooks+脚本实现自动更新发布代码之shell脚本
查看>>
php连接sql service数据库中文乱码
查看>>
使用lombok包自动生成pojo 类的getter,setter方法
查看>>
BAPI操作手册
查看>>
iframe获取父、子窗口的方法
查看>>
Java编码及网络传输中的编码问题
查看>>
我的友情链接
查看>>
有所寄托
查看>>
WDS 无线设置
查看>>
Rsync备份
查看>>
为wget使用代理
查看>>
Spark On Kubernetes 原生集群支持
查看>>
使用 Caddy 快速搭建高效自动的 HTTPS 服务器
查看>>