zoukankan      html  css  js  c++  java
  • NPOI Excel 导出学习 一 (基础导出)

    代码 

      1   public static class ExcelReportHelper
      2     {
      3         /// <summary>
      4         /// 将列表导出到Excel中
      5         /// </summary>
      6         /// <typeparam name="T"></typeparam>
      7         /// <param name="listData"></param>
      8         /// <param name="sheetName"></param>
      9         /// <param name="title"></param>
     10         /// <param name="description"></param>
     11         /// <param name="saveTo"></param>
     12         /// <returns></returns>
     13         public static XSSFWorkbook ExportToExcelSheet<T>(List<T> listData, string sheetName, XSSFWorkbook hssfWorkbook)
     14         {
     15             try
     16             {
     17                 int propertyCount = getPropertyCount(typeof(T));
     18                 var sheet1 = hssfWorkbook.CreateSheet(sheetName);
     19                 var row1 = (XSSFRow)sheet1.CreateRow(0);
     20                 WriteHeader(typeof(T), row1);
     21 
     22                 int i = 0;
     23                 foreach (var item in listData)
     24                 {
     25                     int rowIndex = i;
     26                     var rowData = (XSSFRow)sheet1.CreateRow(rowIndex + 1);
     27                     WriteData(item, typeof(T), rowData);
     28                     i++;
     29                 }
     30                 //setAutoColumn(sheet1, i);
     31                 return hssfWorkbook;
     32             }
     33             catch (Exception e)
     34             {
     35                 return null;
     36             }
     37         }
     38         private static int getPropertyCount(Type type)
     39         {
     40             if (type != null)
     41             {
     42                 Type t = type;
     43                 PropertyInfo[] propertyInfo = t.GetProperties();
     44 
     45                 int i = 0;
     46                 foreach (PropertyInfo propInfo in propertyInfo)
     47                 {
     48                     object[] objAttrs = propInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true);
     49 
     50                     if (objAttrs.Length > 0)
     51                     {
     52                         i++;
     53                     }
     54 
     55                 }
     56                 return i;
     57             }
     58             return 0;
     59         }
     60 
     61         /// <summary>
     62         /// 写表头
     63         /// </summary>
     64         /// <param name="type"></param>
     65         /// <param name="row"> </param>
     66         /// <param name="style"> </param>
     67         public static void WriteHeader(Type type, XSSFRow row)
     68         {
     69             if (type != null)
     70             {
     71                 Type t = type;
     72                 PropertyInfo[] propertyInfo = t.GetProperties();
     73                 int i = 0;
     74                 foreach (PropertyInfo propInfo in propertyInfo)
     75                 {
     76                     var cell = row.CreateCell(i);
     77                     object[] objAttrs = propInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true);
     78 
     79                     if (objAttrs.Length > 0)
     80                     {
     81                         var attr = objAttrs[0] as DisplayNameAttribute;
     82                         cell.SetCellValue(attr != null ? attr.DisplayName : "");
     83                         i++;
     84                     }
     85                     //cell.CellStyle = style;
     86 
     87                 }
     88 
     89             }
     90         }
     91 
     92         public static void WriteData<T>(T obj, Type type, XSSFRow row)
     93         {
     94             if (obj != null)
     95             {
     96                 Type t = type;
     97                 PropertyInfo[] propertyInfo = t.GetProperties();
     98                 int i = 0;
     99                 foreach (PropertyInfo propInfo in propertyInfo)
    100                 {
    101                     object[] objAttrs = propInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true);
    102 
    103                     if (objAttrs.Length > 0)
    104                     {
    105                         var cell = row.CreateCell(i);
    106                         object value = propInfo.GetValue(obj, null);
    107                         if (value != null)
    108                         {
    109                             if (propInfo.PropertyType == typeof(int))
    110                             {
    111 
    112                                 cell.SetCellValue((int)value);
    113                             }
    114                             else if(propInfo.PropertyType == typeof(decimal?)|| propInfo.PropertyType == typeof(decimal))
    115                             {
    116                                 var values = (decimal)value;
    117                                 var value1=Decimal.ToInt32(values);
    118                                 cell.SetCellValue(value1);
    119                             }
    120                             else if (propInfo.PropertyType == typeof(DateTime?) || propInfo.PropertyType == typeof(DateTime))
    121                             {
    122                                 var values = (DateTime)value;
    123                                 cell.SetCellValue(values.ToString("yyyy/MM/dd hh:mm:ss"));
    124                             }
    125                             else
    126                             {
    127                                 cell.SetCellValue(value.ToString());
    128                             }
    129                         }
    130 
    131                         i++;
    132                     }
    133                 }
    134 
    135             }
    136         }
    137        
    138     }
  • 相关阅读:
    Java Web 网络留言板2 JDBC数据源 (连接池技术)
    Java Web 网络留言板3 CommonsDbUtils
    Java Web ConnectionPool (连接池技术)
    Java Web 网络留言板
    Java Web JDBC数据源
    Java Web CommonsUtils (数据库连接方法)
    Servlet 起源
    Hibernate EntityManager
    Hibernate Annotation (Hibernate 注解)
    wpf控件设计时支持(1)
  • 原文地址:https://www.cnblogs.com/luoye-chenxin/p/9266728.html
Copyright © 2011-2022 走看看