• 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

  • 相关阅读:
    Win8.1恢复被禁用虚拟WiFi适配器的方法
    VM虚拟机安装AndroidX86版
    (转)java 调用webservice的各种方法总结
    在虚拟机中配置FastDFS+Nginx模块
    Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)
    C# WPF 自学 MVVM简单介绍
    【ASP.NET Core】在CentOS上安装.NET Core运行时、部署到CentOS
    log4net 写入 mongodb+Mongodb记录日志
    MongoDB学习笔记
    使用druid 数据池对连接密码加密
  • 原文地址:https://www.cnblogs.com/Byeah/p/1639735.html
Copyright © 2020-2023  润新知