Слияние кода завершено, страница обновится автоматически
只需要引用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)
导出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);
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )