DevExpress Winform 所有可打印控件(gridcontrol等)通用导出excel方法
来源:互联网 发布:linux不显示行号 编辑:程序博客网 时间:2024/05/14 14:41
关于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; }
0 0
- DevExpress Winform 所有可打印控件(gridcontrol等)通用导出excel方法
- GridControl 通用导出excel
- 使用DevExpress导出GridControl控件数据到excel文件
- DevExpress GridControl 导出为Excel
- Devexpress 13.1 Silverlight GridControl的打印导出
- DevExpress GridControl GridView 导出到 Excel 类
- devexpress的gridcontrol控件打印eco数据
- DevExpress.XtraGrid.GridControl 打印
- DevExpress GridControl Export 导出
- DevExpress GridControl导出数据
- DevExpress通用导出Excel,支持多个控件同时导出在同一个Sheet表
- DevExpress-GridControl数据导出到EXCEL技术指导QQ:595789813
- DevExpress控件之gridControl
- DevExpress GridControl 控件常见问题
- DEV控件之GridControl导出到Excel
- Winform 导出成Excel打印
- 通用 Excel 导出方法
- DevExpress控件之GridControl控件
- C#中子类与父类的相互转换
- linux 安装二维码生成工具
- 安卓抽奖功能实现
- 12(十二)种常见设计模式
- SharpNl relevant
- DevExpress Winform 所有可打印控件(gridcontrol等)通用导出excel方法
- appium无法获取toast的解决方案
- Android 百度地图 定位当前位置
- 关于 URL 传递中文参数出现乱码的解决方案
- table 超多列 滚动条 自适应 bootstrap
- Makefile经典教程(最牛X的教程)
- Android4.4深入浅出之SurfaceFlinger总体结构
- 全局变量和静态局部变量有什么区别?
- SpringMVC之@RequestMapping,@Responsebody与@RequestBody,以及@PathVariable简单介绍