环境:DevExpress9.3,Vs2008

DevExpress的GridControl提供方便的数据导出到Excel功能,导出中用户可以根据GridControl的格式进行导出(ExportToXls(Stream stream)方法)。

1、如果表中存在一列为字符类型,但是存放的为数字,那么按照GridControl的格式导出到Excel中便会产生"将存储为文本的数字转换为数字"的问题提示,必须在Excel中把这些值转化为数字,才可进行计算等。

对于这种方式的处理方法很简单,只要把GridControl绑定的数据源的这一列的数据类型修改为数值类型即可。

2、我手动对存储的数字进行了处理,对整数采用千分位显示(intValue.ToString("###,###")方法),对小数采用千分位两位小数显示,不足两位小数的用0补足(String.Format("{0:N}", doubleValue)方法或者String.Format("{0:N2}",doubleValue)方法)。这种方式已经将存储的数字转化为字符串了,如果该列数值类型,则会导致赋值错误,因此列只可以是字符类型,同样导致按照GridControl的格式导出到Excel中便会产生"将存储为文本的数字转换为数字"的问题。

对于这中方法,我们可以通过GridControl自带的数据格式进行解决。下面可以通过两种方法进行实现。

(1)通过代码进行实现

对于整数:

      gridViewTest.Columns[i].DisplayFormat.FormatType = FormatType.Numeric;
            gridViewTest.Columns[i].DisplayFormat.FormatString = "#,###";

对于小数:

      gridViewTest.Columns[i].DisplayFormat.FormatType = FormatType.Numeric;
            gridViewTest.Columns[i].DisplayFormat.FormatString = "#,###.00";

(1)通过设计窗体进行实现

对于整数:

对于小数:

下面附导出到Excel的代码实现:

   1: private void btnExport_Click(object sender, EventArgs e)

   2: {

   3:     saveFileDialog1.FileName = "";

   4:     saveFileDialog1.Filter = "Excel文件(.xls)|*.xls";

   5:     saveFileDialog1.FileName = "测试文档";

   6:     saveFileDialog1.OverwritePrompt = false; //已存在文件是否覆盖提示

   7:     if (saveFileDialog1.ShowDialog() != DialogResult.OK)

   8:         return;

   9:     //已存在文件是否覆盖提示

  10:     while (System.IO.File.Exists(saveFileDialog1.FileName) && 

  11:         DevExpress.XtraEditors.XtraMessageBox.Show("该文件名已存在,是否覆盖?", 

  12:         "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)

  13:     {

  14:         if (saveFileDialog1.ShowDialog() != DialogResult.OK)

  15:             return;

  16:     }

  17:     if (saveFileDialog1.FileName != "")

  18:     {

  19:         try

  20:         {

  21:             System.IO.FileStream fs =

  22:                (System.IO.FileStream)saveFileDialog1.OpenFile();

  23:             this.gridControlTest.ExportToXls(fs);

  24:             fs.Close();

  25:             DevExpress.XtraEditors.XtraMessageBox.Show("数据导出成功!", "提示");

  26:         }

  27:         catch (Exception ex)

  28:         {

  29:             if (ex.Message.Contains("正由另一进程使用"))

  30:             {

  31:                 DevExpress.XtraEditors.XtraMessageBox.Show("数据导出失败!文件正由另一个程序占用!", "提示");

  32:             }

  33:             else

  34:                 DevExpress.XtraEditors.XtraMessageBox.Show("数据导出失败!数据量过大,请分别统计再导出!", "提示");

  35:         }

  36:     }

  37: }

Dev GridControl数据导出格式问题的更多相关文章

  1. WinForm------如何将GridControl数据导出到Excel

    转载: http://www.cnblogs.com/xiaofengfeng/archive/2011/11/22/2258906.html 代码: SaveFileDialog saveFileD ...

  2. DEV GridControl打印 导出

    /// <summary> /// 打印 /// </summary> /// <param name="sender"></param& ...

  3. Dev GridControl数据修改后实时更新数据源

      1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param n ...

  4. Dev GridControl数据修改后实时更新数据源(转)

    1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param nam ...

  5. 使用NPOI将数据导出为word格式里的table

    开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. ...

  6. .net解决数据导出excel时的格式问题

    在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下 ...

  7. C# DevExpress 的gridControl或gridView数据导出失败解决方法

    来自:http://blog.csdn.net/lybwwp/article/details/8049464 谢谢 在使用DevExpress 的GridPanel控件的时候出现了一个莫名其妙的现象, ...

  8. DEV GridControl导出到Excel或打印

    //方法1SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileD ...

  9. C# dev GridControl绑定数据不能显示

    如题, dev GridControl绑定数据不能显示时可检查数据操作顺序 view = advBandedGridView1 as AdvBandedGridView; //第1 this.advB ...

随机推荐

  1. 为什么要使用sass

    或许你已经听过一个叫作Sass的东东?可能你已经了解它,并且你能像大师一样写出一些函数? 对于不清楚我在讲什么的读者或者客户,你们可以想想web开发过程,你们的期望和站点用户的体验想要怎样的.无论如何 ...

  2. linux, configure --prefix=/有什么用

    作用就是指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc.其它的资源文件放在 ...

  3. [转]Could not load file or assembly 'System.Core, Version=2.0.5.0 和autofac冲突的问题

    Could not load file or assembly 'System.Core, Version=2.0.5.0 和autofac冲突的问题 来源:http://www.cnblogs.co ...

  4. 【python】类的访问限制

    在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...

  5. Intellij Idea系列之Tomcat环境的搭建(三)

    Intellij Idea系列之Tomcat环境的搭建(三) 一. 编写背景 Intellij Idea在刚上手的时候很多人吐槽,"god, 这么难用的IDE有谁用呀?",的确,I ...

  6. MapReduce编程job概念原理

    在Hadoop中,每个MapReduce任务都被初始化为一个job,每个job又可分为两个阶段:map阶段和reduce阶段.这两个阶段分别用两个函数来表示.Map函数接收一个<key,valu ...

  7. Wampserver2.5配置虚拟主机出现403 Forbidden解决办法

    一直在用APMServ5.2.6,mysql好办,可以用mariadb代替进行升级,但php升级到5.4.7就没办法再升级,安装加速器也困难.就想迁移到Wampserver上来,以前也尝试过Wamps ...

  8. nodejs初探(二)第一个nodejs程序“hello world”

    直接用文本编辑器编写helloworld.js,保存在桌面 var http = require("http"); http.createServer(function(reque ...

  9. ubuntu下设置clion是使用clang和clang++

    链接 http://stackoverflow.com/questions/31725681/how-to-setup-clion-with-portable-clang-on-ubuntu I go ...

  10. [HTML] CSS Id 和 Class选择器

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. id 选择器 id 选择器可以为标 ...