在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)
在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)
在基类窗体扩展一个通用导出Excel文件的按钮,支持导出当前窗体所有表格的数据到Xlsx文件。
在【数据查询】页面,默认导出主表的数据,在【数据编辑】页面,导出所有明细的表格的数据。
效果:

解决方案:
1. 重写InitButtons方法
C# Code:
/// <summary>
/// 初始化数据窗体的按钮
/// </summary>
public override void InitButtons()
{
base.InitButtons();
//扩展一个按钮
if (this.ButtonAuthorized(ButtonAuthority.EXPORT))
this.Buttons.AddButton(this.ToolbarRegister.CreateButton("btnExportXls", LanLib.Get("导出Excel"), ToolBarGroup.数据操作, Globals.LoadBitmap("export.ico"), new Size(57, 28), false, true, this.DoExportXls));
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 初始化数据窗体的按钮
/// </summary>
public override void InitButtons()
{
base.InitButtons();
//扩展一个按钮
if (this.ButtonAuthorized(ButtonAuthority.EXPORT))
this.Buttons.AddButton(this.ToolbarRegister.CreateButton("btnExportXls", LanLib.Get("导出Excel"), ToolBarGroup.数据操作, Globals.LoadBitmap("export.ico"), new Size(57, 28), false, true, this.DoExportXls));
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
2. 按钮事件
C# Code:
/// <summary>
/// 导出Excel通用按钮事件
/// </summary>
/// <param name="sender"></param>
public virtual void DoExportXls(IButtonInfo sender)
{
if (tcBusiness.SelectedTabPage == tpSummary && _SummaryView != null)
{
if (_SummaryView.View is GridView)
{
//导出主表
DoExportXlsx(_SummaryView.View as GridView);
}
}
else
{
DoExportDetailXlsx();//导出所有明细
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 导出Excel通用按钮事件
/// </summary>
/// <param name="sender"></param>
public virtual void DoExportXls(IButtonInfo sender)
{
if (tcBusiness.SelectedTabPage == tpSummary && _SummaryView != null)
{
if (_SummaryView.View is GridView)
{
//导出主表
DoExportXlsx(_SummaryView.View as GridView);
}
}
else
{
DoExportDetailXlsx();//导出所有明细
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
3. 导出明细页面的数据(模板方法)
C# Code:
/// <summary>
/// 导出明细表的Excel
/// </summary>
public virtual void DoExportDetailXlsx()
{
throw new NotImplementedException(LanLib.Get("导出明细表的Excel未实现!"));
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 导出明细表的Excel
/// </summary>
public virtual void DoExportDetailXlsx()
{
throw new NotImplementedException(LanLib.Get("导出明细表的Excel未实现!"));
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
注意:有明细表的界面,必须重写DoExportDetailXlsx方法!
4. 导出表格数据到Excel的通用方法,支持导出多个表格。
C# Code:
/// <summary>
/// 导出表格的Excel通用方法
/// </summary>
/// <param name="views"></param>
protected void DoExportXlsx(params GridView[] views)
{
try
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Microsoft Excel Files|*.xlsx";
if (dlg.ShowDialog() == DialogResult.OK)
{
foreach (var view in views)
{
if (views.Length > 0)
view.ExportToXlsx(dlg.FileName.Substring(0, dlg.FileName.Length - 5) + "_" + view.Name + ".xlsx");
else
view.ExportToXlsx(dlg.FileName);
}
Msg.ShowInformation(LanLib.Get("导出文件成功!"));
}
}
catch
{
Msg.ShowInformation(LanLib.Get("导出文件失败成功!"));
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 导出表格的Excel通用方法
/// </summary>
/// <param name="views"></param>
protected void DoExportXlsx(params GridView[] views)
{
try
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Microsoft Excel Files|*.xlsx";
if (dlg.ShowDialog() == DialogResult.OK)
{
foreach (var view in views)
{
if (views.Length > 0)
view.ExportToXlsx(dlg.FileName.Substring(0, dlg.FileName.Length - 5) + "_" + view.Name + ".xlsx");
else
view.ExportToXlsx(dlg.FileName);
}
Msg.ShowInformation(LanLib.Get("导出文件成功!"));
}
}
catch
{
Msg.ShowInformation(LanLib.Get("导出文件失败成功!"));
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761


参考文档:
C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
CSFrameworkV6旗舰版 | 导入导出Excel文件数据开发教程|C/S开发框架
C# .NET8使用NPOI导出数据到Excel文件
Winform框架通用导入程序,支持Excel,xls/xlsx格式|C/S开发框架
OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
解决方案:FastReport.NET导出Excel文件单元格的数据空白
Winform框架通用导入Excel文件源码下载
框架提供通用数据导出功能,将表格数据导出到EXCEL文件
C#操作Excel合并多个Excel文件
CSFrameworkV6-导出Excel模版、导入数据设计
C#导出数据到Excel 源码大全
C# 取真实的文件类型
知识产权客户登单管理系统-系统详细设计说明书docx文件下载|软件文档
C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
CSFrameworkV6旗舰版 | 导入导出Excel文件数据开发教程|C/S开发框架
C# .NET8使用NPOI导出数据到Excel文件
Winform框架通用导入程序,支持Excel,xls/xlsx格式|C/S开发框架
OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
解决方案:FastReport.NET导出Excel文件单元格的数据空白
Winform框架通用导入Excel文件源码下载
框架提供通用数据导出功能,将表格数据导出到EXCEL文件
C#操作Excel合并多个Excel文件
CSFrameworkV6-导出Excel模版、导入数据设计
C#导出数据到Excel 源码大全
C# 取真实的文件类型
知识产权客户登单管理系统-系统详细设计说明书docx文件下载|软件文档
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
