/// <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