zoukankan      html  css  js  c++  java
  • ASP.NET 把集合导出为Excel的一个助手类

    转别人的,做了个小小改动,增加了一个重载,可以在把集合数据读入Excel之后再增加自定义的一些输出。

    public class ExcelHelper
        
    {
            
    /// <summary>
            
    /// 将一组对象导出成EXCEL
            
    /// </summary>
            
    /// <typeparam name="T">要导出对象的类型</typeparam>
            
    /// <param name="objList">一组对象</param>
            
    /// <param name="FileName">导出后的文件名</param>
            
    /// <param name="columnInfo">列名信息</param>

            public static void ExExcel<T>(List<T> objList, string FileName, Dictionary<stringstring> columnInfo)
            
    {
                ExExcel(objList, FileName, columnInfo, 
    null);
                
            }

            
    /// <summary>
            
    /// 将一组对象导出成EXCEL
            
    /// </summary>
            
    /// <typeparam name="T">要导出对象的类型</typeparam>
            
    /// <param name="objList">一组对象</param>
            
    /// <param name="FileName">导出后的文件名</param>
            
    /// <param name="columnInfo">列名信息</param>
            
    /// <param name="other">追加其他内容</param>

            public static void ExExcel<T>(List<T> objList, string FileName, Dictionary<stringstring> columnInfo, string other)
            
    {
                
    if (columnInfo.Count == 0return; }
                
    if (objList.Count == 0return; }
                
    //生成EXCEL的HTML
                string excelStr = "";

                Type myType 
    = objList[0].GetType();
                
    //根据反射从传递进来的属性名信息得到要显示的属性
                List<PropertyInfo> myPro = new List<PropertyInfo>();
                
    foreach (string cName in columnInfo.Keys)
                
    {
                    PropertyInfo p 
    = myType.GetProperty(cName);
                    
    if (p != null)
                    
    {
                        myPro.Add(p);
                        excelStr 
    += columnInfo[cName] + "\t";
                    }

                }

                
    //如果没有找到可用的属性则结束
                if (myPro.Count == 0return; }
                excelStr 
    += "\n";

                
    foreach (T obj in objList)
                
    {
                    
    foreach (PropertyInfo p in myPro)
                    
    {
                        excelStr 
    += p.GetValue(obj, null+ "\t";
                    }

                    excelStr 
    += "\n";
                }

                
    if (!string.IsNullOrEmpty(other))
                
    {
                    excelStr 
    += other;
                }

                
    //输出EXCEL
                HttpResponse rs = System.Web.HttpContext.Current.Response;
                rs.Clear();
                rs.ContentEncoding 
    = System.Text.Encoding.GetEncoding("GB2312");
                rs.AppendHeader(
    "Content-Disposition""attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, Encoding.UTF8));
                rs.ContentType 
    = "application/ms-excel";
                rs.Write(excelStr);
                rs.End();
            }

        }
  • 相关阅读:
    (转)Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题(持续更新)
    Ubuntu14.04配置python接口,测试的小问题
    ubuntu简单的小命令
    ubuntu14.04&matlab2015b 测试caffe的Matlab接口
    0427 进制转换
    windows下安装nginx
    事务管理配置与@Transactional注解使用
    spring-web涉及jar包说明
    20145207 《信息安全系统设计基础》第1周学习总结
    《信息安全程序设计基础》第零周学习总结
  • 原文地址:https://www.cnblogs.com/weberypf/p/1516291.html
Copyright © 2011-2022 走看看