C#DevExpress(14.1) Winform GridControl的数据导出功能示例

C#开发 2014-09-24 14968阅读 0评论 0收藏 收藏本文
注:本文所使用的DevExpress的版本为DevExpress 14.1.4版 DevExpress winform的开发中,可能会遇到将gridcontrol的视图(GridView)数据导出到指定格式文件的需求,查了一下DevExpress的文档,其提供了几种导出文件格式的方法,如:ExportToText,ExportToCsv,ExportToPdf,ExportToXls,ExportToHtml等等,具体见下图: devexpress-grid-export-type 直接运用DevExpress提供了这些方法可以快速地导出GridControl数据,每个方法都有几个重载方法,以适应更多的场景使用。但如果只想导出一个GridControl的某列或者某些指定列时,以上的就没有对应的重载方法。这时得我们自己来获取对应的列,然后进行数据的后期处理,我用了GridView的GetRowCellValue(int rowHandle,string fieldName)这个方法来获取一行中的某列数据,然后组装数据以实现导出功能。 具体的代码片断如下(这是项目中的一部分,仅供参考):
if (gViewProxy.SelectedRowsCount <= 0)
      {
        XtraMessageBox.Show("请选择至少一行记录");
        return;
      }
      _sfd.RestoreDirectory = false;
      _sfd.Title = "指定文件保存目录";
      _sfd.DefaultExt = "txt";
      var proxyDir = Path.Combine(Environment.CurrentDirectory, "Proxy");
      if (!Directory.Exists(proxyDir))
      {
        Directory.CreateDirectory(proxyDir);
      }
      _sfd.InitialDirectory = proxyDir; //Path.Combine(proxyDir, DateTime.Now.ToString("yyyyMMddHHmmss"));
      _sfd.FileName = string.Format("{0}.txt", DateTime.Now.ToString("yyyyMMddHHmmss"));
      var dr = _sfd.ShowDialog();
      if (dr == DialogResult.OK)
      {
        var fileName = _sfd.FileName;
        gViewProxy.ExportToXls(fileName);
        using (var stream = File.Open(fileName, FileMode.Create))
        {
          using (var sw = new StreamWriter(stream))
          {
            var rows = gViewProxy.GetSelectedRows();
            var sb = new StringBuilder();
            foreach (var row in rows)
            {
              sb.AppendLine(string.Format("{0}:{1}", gViewProxy.GetRowCellValue(row, "Host").ToString(), gViewProxy.GetRowCellValue(row, "Port").ToString()));
            }
            await sw.WriteAsync(sb.ToString());
          }
        }
        statusLeft.Caption = string.Format("成功保存至:{0}", fileName);
      }
 

转载请注明:图享网 » C#DevExpress(14.1) Winform GridControl的数据导出功能示例

文章评论

获取验证码