DevExpress 利用动态创建GridControl导出Excel,并不显示在界面上

2024-06-23 11:18

本文主要是介绍DevExpress 利用动态创建GridControl导出Excel,并不显示在界面上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

正常情况下,GridControl显示在界面上直接导出数据到excel是没问题的,
在动态创建的时候如果不显示在界面上并不会把数据导到excel,一般的解决方法都是先添加导出后再隐藏或者释放掉,这种方法虽然如愿导出了数据,但是,想一想,这不是很多余么。
大伙有没有想过为什么显示到界面的时候才能导出数据内容呢?其实原理很简单,当对GridControl绑定数据的时候,就会在Form上实例化了 BindingContext对象,Ok知道这个情况,这样问题就很好解决了,只要在代码中直接实例化这个对象不就不需要到Form上自动实例化了么,

利用这个原理写了以下方法

/// <summary>/// 通过GridControl导出Excel/// </summary>/// <param name="dt"></param>/// <param name="fileName"></param>public static void ExportByGridControl(DataTable dt,string fileName){using (DevExpress.Utils.WaitDialogForm dlg = new DevExpress.Utils.WaitDialogForm("请稍等", "保存中...", new Size(100, 50))){try{GridControl grid = new GridControl();grid.BindingContext = new BindingContext();//绑定内容实例,否则需要在界面显示才会自动实例GridView view = new GridView(grid);grid.MainView = view;grid.DataSource = dt;grid.ForceInitialize();//强制初始化grid.ExportToXlsx(fileName);if(DialogResult.Yes== XtraMessageBox.Show("导出成功,是否打开文件","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information))System.Diagnostics.Process.Start(fileName);}catch(Exception ex){XtraMessageBox.Show("导出失败:" + ex.Message);}}}void MethodTest(){DataTable dt = new DataTable();dt.Columns.Add("Name");dt.Rows.Add("涛神厉害");dt.Rows.Add("涛神牛逼");ExportByGridControl(dt, "E:\\涛神.xlsx");}


这篇关于DevExpress 利用动态创建GridControl导出Excel,并不显示在界面上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087000

相关文章

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON: