• DevExpress.XtraGrid 导出文本的bug


    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();
                        }
                    }
                }
                
            }

    我装的版本是9.1

  • 相关阅读:
    (转)干货|一次完整的性能测试,测试人员需要做什么?
    (转)JMeter性能测试-服务器资源监控插件详解
    【Android Apk重新签名报错re-sign.jar之解决方法】
    CrackMe_001
    判断二叉树是否是镜像对称
    顺时针打印矩阵
    利用前序遍历和中序遍历构造二叉树
    二叉树的四种遍历方式
    最长回文子串
    同步/异步/阻塞/非阻塞
  • 原文地址:https://www.cnblogs.com/Byeah/p/1639735.html
Copyright © 2020-2023  润新知