环境: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. NodeJs http.get 方法请求时间过长问题处理!

    NodeJs 获取网页内容 http.get 默认请求超时过长了,程序要卡死好一会. 根据网上资料现改造了一个带超时设置的获取网页内容方法. 主要方法使用 setTimeout 来超时, 代码如下: ...

  2. SQL Server 2012将数据库备份到网络中的共享文件夹

    把计算机computer1 中的数据库备份到计算机computer2(IP:192.168.0.130)中的一个共享文件夹下 在computer2中的F盘下建一个共享文件夹叫DBBackupShare ...

  3. loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法

    转载,原地址为:http://jianyu996.blog.163.com/blog/static/11211455520131226840879/ 请尊重原创: 1,无论XIB还是代码创建都会调用l ...

  4. EditText----

    ==============01   editText属性 1.输入法Enter键图标的设置: 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有normal,a ...

  5. socket测试远程地址能否连接并为连接设置超时

    public class TestConnect { string hostIp = ""; ; public string recMsg = ""; Sock ...

  6. 使用属性动画简单实现view飞入效果

    比较简单的效果,可以用来菜单飞入之类,作为记录吧, package com.test.animation; import android.app.Activity; import android.os ...

  7. Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持

    .net framework 4.5下测试成功,使用RedisSessionStateProvider 2.2.1保持session数据,通过Haproxy保持会话数据.首先在PM下安装RedisSe ...

  8. 技术那么多,你想看看JSON Schema的测试吗?

    目录 1. 什么是JSON Schema? 2. 如何定义一个JSON Schema 3. 如何测试JSON Schema a) 使用JSON Schema validator GUI b) 在Jav ...

  9. DataGridView控件的各种操作总结

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index ...

  10. 64. ZigZag Conversion

    ZigZag Conversion The string "PAYPALISHIRING" is written in a zigzag pattern on a given nu ...