dev gridcontrol 导出到excel

        /// <summary>
        /// 保存Excel文件,.xlsx
        /// </summary>
        /// <param name="gridView">数据源</param>
        /// <param name="fileNameOrSheetName">保存的文件名或工作名</param>
        public static void ExportExcel(DevExpress.XtraGrid.Views.Grid.GridView gridView, string fileNameOrSheetName)
        {
            if (gridView.RowCount > 0)
            {
                var export = true;
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title = "导出Excel";
                saveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
                saveFileDialog.FileName = fileNameOrSheetName + "_" + DateTime.Now.ToString("yyyyMMddhhmmss");

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    DevExpress.XtraPrinting.XlsxExportOptionsEx op = new DevExpress.XtraPrinting.XlsxExportOptionsEx();

                    op.ExportType = DevExpress.Export.ExportType.WYSIWYG;//所见即所得
                    op.ExportMode = DevExpress.XtraPrinting.XlsxExportMode.SingleFile;//指定XLSX导出模式-->单一文件
                    op.TextExportMode = DevExpress.XtraPrinting.TextExportMode.Value;//指定是否在导出的XLS(或XLSX)文档中使用绑定数据集中的数据字段的格式-->使用与原始文档中相同的格式
                    op.SheetName = fileNameOrSheetName;//工作簿名称

                    gridView.OptionsPrint.PrintHeader = true;//是否打印行头
                    gridView.OptionsPrint.AutoWidth = false;//获取或设置输出/导出输出中的列的宽度是否会自动改变,以便视图与页面宽度相匹配。
                    gridView.OptionsPrint.AllowCancelPrintExport = true;  //获取或设置打印/导出进度窗口是否包含一个取消按钮,这允许终端用户取消当前的打印/导出操作。
                    gridView.AppearancePrint.HeaderPanel.Font = new System.Drawing.Font("微软雅黑", 10);
                    gridView.AppearancePrint.Row.Font = new System.Drawing.Font("微软雅黑", 10);
                    gridView.AppearancePrint.FooterPanel.Font = new System.Drawing.Font("微软雅黑", 10);

                    try
                    {
                        gridView.ExportToXlsx(saveFileDialog.FileName, op);
                    }
                    catch (Exception ex)
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);
                        export = false;
                    }
                    if (export)
                    {
                        if (DevExpress.XtraEditors.XtraMessageBox.Show("导出成功,是否打开文件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                            System.Diagnostics.Process.Start(saveFileDialog.FileName);
                    }
                }
            }
            else XtraMessageBox.Show("无数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }
        /// <summary>
        /// 保存Excel文件,.xls
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ExportExcel2(DevExpress.XtraGrid.GridControl gridcontrol, string fileNameOrSheetName)//(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gridcontrol.MainView.RowCount > 0)
            {
                var export = true;
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title = "导出Excel";
                saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";
                saveFileDialog.FileName = fileNameOrSheetName + "_" + DateTime.Now.ToString("yyyyMMddhhmmss");
                if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
                {
                    //DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions();
                    //options.ExportMode = XlsExportMode.SingleFile;//指定XLSX导出模式-->单一文件
                    //options.TextExportMode = DevExpress.XtraPrinting.TextExportMode.Value;//指定是否在导出的XLS(或XLSX)文档中使用绑定数据集中的数据字段的格式-->使用与原始文档中相同的格式
                    //options.SheetName = fileNameOrSheetName;//工作簿名称
                    try
                    {
                        gridcontrol.ExportToXls(saveFileDialog.FileName);
                    }
                    catch (Exception ex)
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message);
                        export = false;
                    }
                    if (export)
                    {
                        if (DevExpress.XtraEditors.XtraMessageBox.Show("导出成功,是否打开文件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                            System.Diagnostics.Process.Start(saveFileDialog.FileName);
                    }
                }
            }
            else XtraMessageBox.Show("无数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

其它相关链接参考:

【CSDN博客】 php 导出excel 进度条显示
http://blog.csdn.net/xiaowan206/article/details/78518794
【CSDN下载】 Excel 批量上传 批量 处理 进度条
http://download.csdn.net/download/mike0906/6559861
【CSDN下载】 Excel导入DataGridView和SQL 带进度条
http://download.csdn.net/download/oumigai/9922604
【CSDN下载】 (兼容XP系统)多线程异步编程带进度条的利用Excel模版报表转换
http://download.csdn.net/download/yangyanghaoran/4574325
【CSDN博客】 VBA 两个Excel对比 操作(带进度条)
http://blog.csdn.net/xiaoqingwuku/article/details/12966805
【CSDN博客】 在ASP.NET中将Excel文件中数据导入数据库并显示进度条
http://blog.csdn.net/jasonwu_bj/article/details/6112146
【CSDN博客】 (转).net中导入excel文件显示进度条
http://blog.csdn.net/wanderball/article/details/7733654
【CSDN博客】 .net导入Excel 并显示进度条
http://blog.csdn.net/yelin042/article/details/76602429
【CSDN下载】 duilib 做的Demo ,支持进度条,以及动态修改xml 的内容
http://download.csdn.net/download/cnsqq_mapan/5699847
【CSDN博客】 ios 使用NSURlSession 下载文件并且使用进度条进行文件下载进度读取以及打开附件(word,excel,ppt,pdf)显
http://blog.csdn.net/georgehenrywilliam/article/details/53374307

DevExpress GridControl使用经验总结:
http://www.360doc.com/content/14/0429/15/10893884_373218734.shtml

原文地址:https://www.cnblogs.com/xifengyeluo/p/8193739.html