DevExportTool类 - DevExpress GridView 导出Excel文件通用类

DevExportTool类 - DevExpress GridView 导出Excel文件通用类
DevExportTool类
C# 全选
using DevExpress.XtraCharts;
using DevExpress.XtraGrid;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrintingLinks;
namespace CSFrameworkV6.Library.CommonClass
{
/// <summary>
/// DevExpress通用导出PDF,Excel工具类
/// </summary>
public class DevExportTool
{
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="fileName">文件名</param>
/// <param name="printable">可打印输出的控件,如:GridControl, ChartControl</param>
public void ExportToExcel(string fileName, IPrintable printable)
{
PrintingSystem ps = new PrintingSystem();
CompositeLink link = new CompositeLink(ps);
ps.Links.Add(link);
link.Links.Add(CreatePrintableLink(printable));
link.Landscape = true;//横向
try
{
if (fileName.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase))
{
XlsxExportOptions options = new XlsxExportOptions();
options.ExportMode = XlsxExportMode.SingleFile;
options.TextExportMode = TextExportMode.Value;
link.ExportToXlsx(fileName, options);
}
else
{
XlsExportOptions options = new XlsExportOptions();
options.ExportMode = XlsExportMode.SingleFile;
options.TextExportMode = TextExportMode.Value;
link.ExportToXls(fileName, options);
}
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);
}
}
public void ExportToDocx(string fileName, GridControl printable)
{
PrintingSystem ps = new PrintingSystem();
CompositeLink link = new CompositeLink(ps);
ps.Links.Add(link);
link.Links.Add(CreatePrintableLink(printable));
link.Landscape = true;//横向
try
{
DocxExportOptions options = new DocxExportOptions();
options.ExportMode = DocxExportMode.SingleFile;
options.KeepRowHeight = true;
options.TableLayout = true;
link.ExportToDocx(fileName, options);
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);
}
}
/// <summary>
/// 导出PDF
/// </summary>
/// <param name="fileName"></param>
/// <param name="printable"></param>
public void ExportToPDF(string fileName, IPrintable printable)
{
PrintingSystem ps = new PrintingSystem();
CompositeLink link = new CompositeLink(ps);
ps.Links.Add(link);
link.Links.Add(CreatePrintableLink(printable));
link.Landscape = true;//横向
try
{
PdfExportOptions options = new PdfExportOptions
{
ConvertImagesToJpeg = true,
ImageQuality = PdfJpegImageQuality.High,
};
link.ExportToPdf(fileName, options);
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);
}
}
/// <summary>
/// 创建打印Componet
/// </summary>
/// <param name="printable"></param>
/// <returns></returns>
PrintableComponentLink CreatePrintableLink(IPrintable printable)
{
//图表组件
if (printable is ChartControl chart)
{
chart.OptionsPrint.SizeMode = DevExpress.XtraCharts.Printing.PrintSizeMode.None;
}
//表格组件
if (printable is GridControl grid)
{
//
}
PrintableComponentLink printableLink = new PrintableComponentLink() { Component = printable };
return printableLink;
}
}
}
使用方法
C# 全选
new DevExportTool().ExportToExcel(文件名, GridControl组件名称);

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





