2 Star 7 Fork 7

果果 / NPOIExtension

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

NPOI--基于NPOI封装高级应用

只需要引用NPOI官网相关dll,然后把NPOIService 和CommonUtility 引用到项目中即可,可以快速构建项目导出,无需关注NPOI底层实现。

文件说明

NPOIService:基于NPOI分装的EXCEL主要核心代码

核心方法

1、把List封装为Excel

public static void ListToExcel<T>(IWorkbook workbook, ISheet sheet, List<T> collection, List<ExcelColumn> columns, ExcelTitle title = null)

2、Excel分装为List

public static List<T> ExcelToList<T>(IWorkbook workbook, ISheet sheet, List<ExcelColumn> columns, int headRowIndex = 0)

3、读取Excel模板 填充数据

public static void AppendToExcel<T>(IWorkbook workbook, ISheet sheet, List<T> collection, List<ExcelColumn> columns, int startRow, ExcelTitle title = null)

4、数据绑定

private static void ListToExcelDataRow<T>(IWorkbook workbook, ISheet sheet, List<T> collection, List<ExcelColumn> columns, int startRow)

MVC中案例

导出Excel
public ActionResult SettlementExport()
      {
          //1、获取数据
          var list = settlementList;
          //2、IWorkbook 和ISheet
          IWorkbook workbook = new HSSFWorkbook();//new XSSFWorkbook();
          ISheet sheet = workbook.CreateSheet("对账单");

          //3、设置导出的列
          List<ExcelColumn> columns = new List<ExcelColumn>();
          columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.Id });
          columns.Add(new ExcelColumn<SettlementModel>
          {
              FieldExpr = u => u.BussinessType,
              Name = "业务类型2",
              OnDataBind = (value, item, cell) => item.BussinessType == 1 ? "月结对账单" : "季度结对账单"
          });
          columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.CreateDateBegin, Width = 100 });
          columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.CreateDateEnd });
          columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.SerialId });
          columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.Title });
          //4、把数据和列做绑定
          NPOIService.ListToExcel(workbook, sheet, list, columns);
          //5、导出excel 
          return ExportExcel(DateTime.Now.ToString("yyyyMMddHHmmss"), workbook);
      }

导入Excel

public ActionResult ExcelImport()
      {
          try
          {
              IWorkbook workbook = NPOIService.GetWorkbook(HttpContext.Request);
              ISheet sheet = workbook.GetSheetAt(0);

              List<ExcelColumn> columns = new List<ExcelColumn>();
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.Id });
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.BussinessType });
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.CreateDateBegin, AllowNull = true });
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.CreateDateEnd });
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.SerialId });
              columns.Add(new ExcelColumn<SettlementModel> { FieldExpr = u => u.Title });

              var list = NPOIService.ExcelToList<SettlementModel>(workbook, sheet, columns);
              //业务逻辑处理

          }
          catch (Exception ex)
          {
              //异常处理
          }
          return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
      }

空文件

简介

基于NPOI封装高级应用 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/menggguoguo/NPOIExtension.git
git@gitee.com:menggguoguo/NPOIExtension.git
menggguoguo
NPOIExtension
NPOIExtension
master

搜索帮助