Dev GridControl数据导出格式问题

环境: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: }
时间: 2024-10-11 07:25:10

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

idea自定义数据导出格式

最近需要从数据库导出特定格式的数据,写代码导太麻烦了,试了几个mysql客户端都只能导固定格式的,最后发现idea的Database工具可以自定义导出的格式,所以就试了下. 导出功能在这个位置 当然这些是idea默认的,想自定义点击Go to Scripts Directory 可以直接修改原来的脚本,也可以新建,新建的也会在刚才的右键菜单里显示,很方便.   从原来的脚本可以看出,idea支持三种脚本语言:js.groovy和clojure,可以用自己熟悉的语言写,这里我选的是js.   最终

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

  1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexC

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

1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexCha

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', '5列') #需写入的数据,按照一行一行的输入 #元组数据的个数必须和列数一致 data = [('23','23','34','23','34'),('sadf','23','sdf','23','fsad')] #写入数据 mylist = tablib.Dataset(*data, head

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

开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. 此Demo托管地址:http://git.oschina.net/uustudy/ExportImportWord.git 另外推荐下NPOI代码托管地址:https://github.com/tonyqus/npoi 作者博客:http://tonyqus.sinaapp.com/ 使用nuget

PB导出数据excel格式dw2xls

PB导出数据excel格式dw2xls 使用DW2XLS控件 语法 uf_save_dw_as_excel ( dw, filename ) 參数 dw A reference to the datawindow object filename A string whose value is the name of the file you want to create. If filename is not on the operating system's search path, you

DEV GridControl导出到Excel或打印

//方法1SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.Title = "导出Excel"; fileDialog.Filter = "Excel文件(*.xls)|*.xls"; DialogResult dialogResult = fileDialog.ShowDialog(this); if (dialogResult == DialogResult.OK) { DevExpress

利用PHPExcel将数据导出到xls格式的excel文件

在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使用写到博客中,作为以后开发的一个参考,免得再次使用的时候需要导出找资料,也给其他同行一个参考.作者:DragonDean,博客地址:http://www.cnblogs.com/dragondean/ 什么是PHPExcel? PHPExcel 是用来操作Office Excel 文档的一个PHP类