涛神联合Dxper.Net开发者论坛管理在腾讯课堂开启DevExpress培训课程 详情可以加群QQ群:294560883

关于DevExpress Winform 的所有可打印控件的导出excel 的通用方法,并且解决DevExpress控件自带的方法存在的缺陷问题

1、解决GridControl自带方法不能导出图片;

2、GridControl 的BandGridView 多表头无法导出等问题;

3、解决PivotGridControl导出时候自动分组的问题;

4、支持多个控件一同导出同一个excel 等等

调用该方法真正做到控件的所见所得的导出功能。(觉得非常有用的,麻烦顶一下);

demo可以参考我提供的资源:http://download.csdn.net/detail/u012097590/9651811

 /// <summary>/// DevExpress通用导出Excel,支持多个控件同时导出在同一个Sheet表/// eg:ExportToXlsx("",gridControl1,gridControl2);/// 将gridControl1和gridControl2的数据一同导出到同一张工作表/// </summary>/// <param name="title">文件名</param>/// <param name="panels">控件集</param>public void ExportToExcel(string title, params IPrintable[] panels){SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.FileName = title;saveFileDialog.Title = "导出Excel";saveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx|Excel文件(*.xls)|*.xls";DialogResult dialogResult = saveFileDialog.ShowDialog();if (dialogResult == DialogResult.Cancel)return;string FileName = saveFileDialog.FileName;PrintingSystem ps = new PrintingSystem();CompositeLink link = new CompositeLink(ps);ps.Links.Add(link);foreach (IPrintable panel in panels){link.Links.Add(CreatePrintableLink(panel));}link.Landscape = true;//横向           //判断是否有标题,有则设置         //link.CreateDocument(); //建立文档try{int count = 1;//在重复名称后加(序号)while (File.Exists(FileName)){if (FileName.Contains(").")){int start = FileName.LastIndexOf("(");int end = FileName.LastIndexOf(").") - FileName.LastIndexOf("(") + 2;FileName = FileName.Replace(FileName.Substring(start, end), string.Format("({0}).", count));}else{FileName = FileName.Replace(".", string.Format("({0}).", count));}count++;}if (FileName.LastIndexOf(".xlsx") >= FileName.Length - 5){XlsxExportOptions options = new XlsxExportOptions();link.ExportToXlsx(FileName, options);}else{XlsExportOptions options = new XlsExportOptions();link.ExportToXls(FileName, options);}if (DevExpress.XtraEditors.XtraMessageBox.Show("保存成功,是否打开文件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)System.Diagnostics.Process.Start(FileName);//打开指定路径下的文件}catch (Exception ex){DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);}}/// <summary>/// 创建打印Componet/// </summary>/// <param name="printable"></param>/// <returns></returns>PrintableComponentLink CreatePrintableLink(IPrintable printable){ChartControl chart = printable as ChartControl;if (chart != null)chart.OptionsPrint.SizeMode = DevExpress.XtraCharts.Printing.PrintSizeMode.Stretch;PrintableComponentLink printableLink = new PrintableComponentLink() { Component = printable };return printableLink;}

DevExpress Winform 所有可打印控件(gridcontrol等)通用导出excel方法相关推荐

  1. C#窗体将DGV控件中数据导入导出Excel表

    目录 界面图: 效果视频: 一:将DGV数据导出到Excel表中 二:将Excel表数据导入到DGV中 三:界面全部代码 界面图: 效果视频: DGV数据导入导出Excel 一:将DGV数据导出到Ex ...

  2. C#实现的ActiveX截图打印控件

    C#开发ActiveX控件参考资料: http://www.cnblogs.com/zhf/archive/2009/03/02/1401299.html http://www.cnblogs.com ...

  3. WinForm应用界面开发 - 什么是DevExpress WinForm打印控件?

    所有可打印的DevExpress .NET控件都使用XtraPrinting库提供的方法打印. 获取工具下载 - DevExpress WinForm v21.1 DevExpress技术交流群4:7 ...

  4. c winform 打印 html,C# Winform 打印控件PrintDocument

    由于本着节约的原则,这里的打印都只是保存为.oxps格式的文件. 在我调试时每次打印完成后,窗体都会自己闪退. 在网上并没有相关资料,经过加入断点确认问题在 private void btnPrint ...

  5. dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

    DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...

  6. 【原创】DevExpress控件GridControl中的布局详解

    在进行DevExpress控件GridControl的使用时,因控件的灵活性,所以用户会经常进行拖动控件的列,以达到自己满意的样式, 但下次再打开时系统就会重新还原到原有的布局风格,为了能够保持用户之 ...

  7. devexpress表格控件gridcontrol实现纵向标头

    1.devexpress控件gridcontrol中的标头默认是横向的,如果要实现纵向标头应该怎么做呢.通过官网的资料整理了一个简单的案例,给大家分享一下.运行效果图如下: 2.数据绑定代码如下: D ...

  8. DevExpress控件GridControl中的布局详解 【转】

    DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28|  分类: devexpress |  标签:devexpress  |举报|字号 订阅 h ...

  9. 列标题 如何删除gridcontrol_DEV控件GridControl常用属性设置(转)

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

最新文章

  1. bzoj 1211 [HNOI2004]树的计数
  2. java中scanner if用法_Java通过Scanner了解if...else if语句
  3. SharePoint 出现无法识别的属性“type”
  4. 隐藏通知内容什么意思_降额来袭!信用卡风控短信背后,的“隐藏暗语”你懂吗?...
  5. DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  6. 1、数据库为什么需要备份?
  7. Mac OS Sierra安装Imagick
  8. 最新版python学习_最全Python学习路线图【2020最新版】
  9. python5数据存储
  10. 已经创建了AWS EC2实例,Linux系统默认没有root用户,那么如何创建root用户并更改为root用户登录呢?
  11. 【代码收集】提前载入贴图
  12. 【OpenCV 例程200篇】18. 图像的掩模加法
  13. 初识OpenFlow协议
  14. SOT23-6封装随机数发生芯片,串行接口
  15. LVS-DR负载均衡-02
  16. SpringMVC XXX-servlet.xml ApplicationContext.xml
  17. 每天10个Linux命令四
  18. matlab根据脉冲计算转速,求不规则脉冲之前的时间间隔,进而求出电机转速
  19. CPU--cache和register的区别
  20. Git入门——tortoisegit使用问题:git不显示图标?

热门文章

  1. 百度AI开放平台集成人脸识别,离线采集有动作活体版本sdk
  2. 华为p9 android版本,华为P9有几个版本 华为P9各版本区别对比 (全文)
  3. Query和params的区别?
  4. android开发学习大体思路
  5. 学习日记-魅族2 3手机root
  6. win10部分软件中文显示为“口口口”
  7. PYQT5 界面分离
  8. React网易云音乐
  9. uniapp + vue3微信小程序开发(3)微信授权登录
  10. AppCompat发布两年了,还没了解?