C# NPOI 导出Execl 工具类
2016-08-30 13:56
399 查看
NPOI 导出Execl 自己单独工具类
详见代码
View Code
效果图:
详见代码
/// <summary> /// 将list 集合导处 Execl /// </summary> /// <param name="list">泛型集合</param> /// <param name="strHeaderName">表头名字</param> /// <returns></returns> public static MemoryStream ExprotToList<T>(List<T> list, string strHeaderName) { HSSFWorkbook workbook = new HSSFWorkbook(); ISheet sheet = workbook.CreateSheet(); //创建样式 ICellStyle cellStyle = workbook.CreateCellStyle(); IDataFormat dataFormat = workbook.CreateDataFormat(); cellStyle.DataFormat = dataFormat.GetFormat("yyyy-MM-dd"); //IRow headerRow = sheet.CreateRow(0); //headerRow.CreateCell(0).SetCellValue(strHeaderName); //表头样式 IRow headerRow = sheet.CreateRow(0); headerRow.HeightInPoints = 25; headerRow.CreateCell(0).SetCellValue(strHeaderName); //填充填表 ICellStyle headerStyle = workbook.CreateCellStyle(); headerStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; IFont font = workbook.CreateFont(); font.FontHeightInPoints = 20; font.Boldweight = 700; headerStyle.SetFont(font); headerRow.GetCell(0).CellStyle = headerStyle; sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, list[0].GetType().GetProperties().Length - 1)); IRow rows = sheet.CreateRow(1); //获取list属性值 PropertyInfo[] propertyInfo = list[0].GetType().GetProperties(); #region 获取 实体 中的 [DisplayName("姓名")] { //获取 实体 中的 [DisplayName("姓名")] //Type entity = list[0].GetType(); //for (int i = 0; i < propertyInfo.Length; i++) //{ // var pName = entity.GetProperty(propertyInfo[i].Name.ToString()).GetCustomAttribute<DisplayNameAttribute>(); // rows.CreateCell(i).SetCellValue(pName.DisplayName); //} } #endregion #region 获取实体的属性值 { for (int i = 0; i < propertyInfo.Length; i++) { rows.CreateCell(i).SetCellValue(propertyInfo[i].Name.ToString()); } } #endregion //填充内容 int propertyIndex = 2; foreach (var item in list) { IRow row = sheet.CreateRow(propertyIndex); for (int i = 0; i < propertyInfo.Length; i++) { var obj = propertyInfo[i].GetValue(item, null); row.CreateCell(i).SetCellValue(obj.ToString()); } propertyIndex++; } //宽度自适应 for (int i = 0; i < list.Count; i++) { sheet.AutoSizeColumn(i); } using (MemoryStream ms = new MemoryStream()) { workbook.Write(ms); ms.Flush(); ms.Position = 0; return ms; } }
View Code
效果图:
相关文章推荐
- C#中导出电子表格Execl总结
- C# 将数据导出到Execl汇总
- C# 将数据导出到Execl汇总(很全面)
- C# 将数据导出到Execl汇总
- C# 将数据导出到Execl汇总(很全面)
- C#中导出电子表格Execl总结
- C# 将数据导出到Execl汇总
- C#中导出电子表格Execl总结
- C#中导出电子表格Execl
- C# 将数据导出到Execl汇总
- C# 将数据导出到Execl汇总
- C#中导出电子表格Execl总结
- C#中导出电子表格Execl总结
- C# 将数据导出到Execl汇总
- C#中导出电子表格Execl总结
- C#中导出电子表格Execl总结
- C#中导出电子表格Execl总结
- C#中导出电子表格Execl总结
- C# 将数据导出到Execl汇总
- C# 将数据导出到Execl汇总[转帖]