在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)

  在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)

在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)


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


效果:


贴图图片-基类窗体扩展导出Excel文件按钮



解决方案:


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



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




3. 导出明细页面的数据(模板方法)


C# Code:


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




C/S框架网|csframework.com|新手指南







C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

扩展一个通用导出Excel文件按钮(支持导出所有表格数据Xlsx文件)
如何扩展自定义权限按钮
框架提供通用数据导出功能,将表格数据导出EXCEL文件
C#将数据导出Excel汇总
新建frmBaseGridEditForm,表格中增删改
C#导出数据Excel 源码大全
关于扩展权限、扩展功能按钮及自定义功能点命名|C/S框架网
CSFramework开发框架支持表格编辑,批量修改表格数据
C#设计模式-模板方法定义
Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能)
处理按回车键自动跳下一输入控件
数据字典预设提供导出资料,但是没显示按钮
C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)
业务单据介绍
C#操作Excel合并多个Excel文件
读取一个文件夹下所有txt文件,并保存一个txt文本中
扩展按钮功能 - 扩展一个【复制单据】按钮操作详解
继承frmBaseChild,为什么不显示“关闭”按钮
Winform框架通用导入Excel文件源码下载
自定义按钮权限控制-扩展权限按钮详解