c# 数据导出成excel 方法总结 见标红部分

2020-12-13 13:58

阅读:278

标签:des   style   blog   http   color   io   os   ar   for   

public void ServiceOrderExport(string data)
        {
            StringBuilder sb = new StringBuilder();
            Type entityType = null; ;
            PropertyInfo[] entityProperties = null;
            var input = data.DeserializeObject();
            using (var context = SRVDBHelper.DataContext)
            {
                sb.Remove(0, sb.Length);
                var results = context.Usp_SRV_CheckServiceOrder(input.ServiceOrderID, input.AcceptWay,
                input.StatusCode, input.Description, input.OneLevelSortID, input.TwoLevelSortID,
                input.ThreeLevelSortID, input.AInsNO, input.ACompanyName, input.ADepartmentID,
                input.ASectionID, input.AName, input.CInsNO, input.CCompanyName, input.CDepartmentID,
                input.CSectionID, input.CreatorName, input.HInsNO, input.HCompanyName, input.HDepartmentID,
                input.HSectionID, input.HName, input.CreateDate1, input.CreateDate2, input.FinishDate1,
                input.FinishDate2, input.OverDueStatus1,input.OverDueStatus2);
                List entitys = null;
                if (input.HName !=null)
                {                    
                    entitys = (from item in results
                               where item.处理人 != null
                               select item).ToList();
                }
                else
                {
                    entitys = results.ToList();
                }
                //检查实体集合不能为空
                if (entitys == null || entitys.Count 1)
                {
                    return;
                }
                //取出第一个实体的所有Propertie
                entityType = entitys[0].GetType();
                entityProperties = entityType.GetProperties();
                for (int i = 0; i )
                {
                    sb.Append(entityProperties[i].Name);
                    sb.Append(",");
                }
                sb.Remove(sb.Length - 1, 1);
                sb.Append("\r\n");
                //将所有entity添加到DataTable中
                foreach (object entity in entitys)
                {
                    //检查所有的的实体都为同一类型
                    if (entity.GetType() != entityType)
                    {
                        throw new Exception("要转换的集合元素类型不一致");
                    }
                    object[] entityValues = new object[entityProperties.Length];
                    for (int i = 0; i )
                    {
                        try
                        {
                            entityValues[i] = entityProperties[i].GetValue(entity, null);
                            sb.Append("\"" + HttpContext.Current.Server.HtmlDecode(entityValues[i].ToString().Replace("\"", "\"\"").
                                Replace("\n", Environment.NewLine).Replace("
", Environment.NewLine)) + "\""); sb.Append(","); } catch { entityValues[i] = string.Empty; sb.Append("\"" + entityValues[i].ToString() + "\""); sb.Append(","); } } sb.Remove(sb.Length - 1, 1); sb.Append("\r\n"); } HttpResponse resp; resp = System.Web.HttpContext.Current.Response; resp.Charset = "GB2312"; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + ".csv"); resp.Write(sb); resp.End(); } }

 

c# 数据导出成excel 方法总结 见标红部分

标签:des   style   blog   http   color   io   os   ar   for   

原文地址:http://www.cnblogs.com/niaowo/p/4051048.html


评论


亲,登录后才可以留言!