彩票走势图

DevExpress.XtraGrid 导出文本的bug

原创|其它|编辑:郝浩|2011-04-08 15:47:38.000|阅读 1314 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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

   以下是导出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();
                     }
                 }
             }
            
    &nbsp;    }


(慧都控件网版权所有,转载请注明出处,否则追究法律责任)



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:Byeah's Blog

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP