当前位置:首页 > 技术知识 > 正文内容

DevExpress导出GridControl控件数据

maynowei6个月前 (09-18)技术知识59

前言:使用C#做桌面应用时,我们会常常使用Winform作为我们的开发界面,但是windows自带的控件由于长时间不更新,已经不能够满足当前开发需要

所以使用DevExpress控件作为Winform的界面开发成为不二的选择。

1、DevExpress简介

DevExpress是 Developer Express的缩写,DevExpress是一家全球知名的控件开发公司

DevExpress有较多优秀产品,有套包也有子控件,在此仅对用户界面DXperience Universal Subscription该款套包控件做一个介绍:DEV宇宙版是一个.NET 平台的用户界面套装,它包含Grid、Chart、Reporting、Tree-Grid等100多个功能子控件,同时套包内包含Winform、WPF、Sliverlight、.net 版本和 .NET Application Framework 开发框架。

适用范围:各种桌面、Web应用程序开发,尤其是Winform应用程序开发。

2、DevExpress控件的优势

DevExpress 开发的控件有很强的实力,不仅功能丰富,应用简便,而且界面华丽,更可方便定制。

对于编程人员来说是个不错的选择。它的菜单栏控件更具代表,完全可以替代开发环境提供的基本控件,

而让您编写的程序或软件更显专业化。它还提供完善的帮助系统,资料详尽,可以快速入手。

有些高级控件更是零代码的,非常易于使用。与此同时,慧都科技针对DevExpress for .NET推出了官方汉化资源 ,

使该控件的英文界面、弹出框、右键菜单等翻译成中文,便于您的开发和使用,节约30%的项目开发时间。

3、导出GridControl控件的数据到Excel

直接撸代码:

public static void ExportData(GridControl control)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Title = "导出Excel";

saveFileDialog.Filter = "Excel文件(*.pdf)|*.pdf";

saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";

DialogResult dialogResult = saveFileDialog.ShowDialog();

if (dialogResult == DialogResult.OK)

{

DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions();

control.ExportToXls(saveFileDialog.FileName, options);


DevExpress.XtraEditors.XtraMessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);

}

}

踩坑体验:这样直接导出会将GridControl控件的Columns属性中定义的列名写进表中,

如下图所示:



如果将这个显示出来,然后让用户手动删除,可能用户体验会非常不好。笔者在研究了一天的GridControl属性之后,终于发现取消导入这个列名的属性,具体做法为:

(1) 首先定位到你的UserControl中,然后找到GridControl控件,然后点击Run Design之后,



(2) 然后进行图片上的属性设置,点击左侧的View属性,然后找到右边表格属性框中OptionsPrint属性列,点开之后设置PrintHeader为false(默认为true)即可,如下图所示:



成功后截图:



笔者心语:这一属性是查阅了好多资料(网上对于相关问题解决方案真的很少,以后免不得跟这些控件打交道,遇到一个解决一个就立马记下来),然后一遍遍的试错才得到正确的结果,遇坑不怕,爬起来记住下次不掉坑才是最主要的。永远不要停下前进的脚步!

相关文章

网络安全常用术语(网络安全常用术语介绍)

黑客帽子之分白帽白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于公司,对产品进行模拟黑客...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...

如何正确理解Java领域中的并发锁,我们应该具体掌握到什么程度?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头对于Java领域中的锁,其实从接触Java至今,我相信每一位Java Developer都会有这样的一个...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...

go语言并发原语RWMutex实现原理及闭坑指南

1.RWMutex常用方法Lock/UnlockRLock/RUnlockRLocker 为读操作返回一个Locker接 口的对象2. RWMutex使用方法 func main() { var c...

大量类加载器创建导致诡异FullGC(类的加载器有什么用)

“ 由 GC 问题带你全面了解 JDK8 Metaspace”01—现象最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。首先查看机器上的日志,有调用第三方接口...