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

public void ServiceOrderExport(string data)
        {
            StringBuilder sb = new StringBuilder();
            Type entityType = null; ;
            PropertyInfo[] entityProperties = null;
            var input = data.DeserializeObject<structServiceOrder>();
            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<Usp_SRV_CheckServiceOrderResult> 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 < entityProperties.Length; 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 < entityProperties.Length; i++)
                    {
                        try
                        {
                            entityValues[i] = entityProperties[i].GetValue(entity, null);
                            sb.Append("\"" + HttpContext.Current.Server.HtmlDecode(entityValues[i].ToString().Replace("\"", "\"\"").
                                Replace("\n", Environment.NewLine).Replace("<BR>", 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();
            }
        }
时间: 2024-10-11 13:27:35

c# 数据导出成excel 方法总结 见标红部分的相关文章

C# 泛型List对象数据 导出 成 EXCEL数据表

1          /// <summary>  2         /// 将一组对象导出成EXCEL  3         /// </summary>  4         /// <typeparam name="T">要导出对象的类型</typeparam>  5         /// <param name="objList">一组对象</param>  6         //

有趣的Node爬虫,数据导出成Excel

最近一直没更新了诶,因为学习Backbone好头痛,别问我为什么不继续AngularJs~因为2.0要出来了啊,妈蛋!好,言归正传,最近帮我的好基友扒数据,他说要一些股票债券的数据.我一听,那不就是要做爬虫了么...果断用Node做!(其实也有一个股票数据API,sina提供的,但是由于不适用于债券,没办法,只好自己动手丰衣足食了) 工欲善其事,必先利其器嘛,蓬勃的Node社区提供了非常多的好的工具,下面我列出将要使用的工具: request,封装了Node的原生的http模块,使API更加简洁

SQL大圣之路笔记——把数据库中表里的数据导出成Excel(Copy时,会因分隔符问题导致许多数据存放在一个单元格中)

1.选中DB, 右击选择"Tasks",选中"Export Data" 点击. 2.点击"Next", Authentication 选择使用 "Windows 用户名认证" or "SQL Server 用户名,密码认证",点击"Next".    3.保存文件格式:"Excel", 选择保存文件的路径.Excel 版本,点击"Next".-&g

java数据导出成EXCEL

/** * * @param out 输出流 * @param maplist 数据 * @param title 标题 * @param headers 表头 * @param keys 表头对应的字段名 * @return */ public static boolean getExcelDao(OutputStream out, List<Map<String, Object>> maplist, String title, String[] headers,String k

java数据导出成Excel文件

HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("综合信息");HSSFRow row = sheet.createRow(0);HSSFCell c0 = row.createCell(0);//设置格式HSSFCellStyle cellStyle = workbook.createCellStyle();HSSFFont font = workbook.creat

MySQL要导出成excel的方法

MySQL 要导出成 excel 文件很简单,执行类似这样的命令: select * from 某个表 into outfile  'd:/文件名.xls'; 上述命令你在服务器上执行,就导在服务器 D: 盘,若在客户端命令行方式执行,就导在客户端 D :盘 ,若在客户端通过 POST 方式执行,则导在服务器 D:盘.能导成功的大前提是你有登录权限 ,要有 select 权限,而且还要有 file 权限,如果没有 file 权限,你将无法执行 select ....into outfile 和

php将数据库导出成excel的方法

<?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($do) { echo"导入数据成功<br>"; } else { echo ""; } ?> <form ENCTYPE="multipart/form-data" ACTION="<?php echo&quo

sqlserver将数据库的数据导成excel文档方法

最近公司需要下载uniport的数据跟之前的数据进行对比,所以避免不了需要将数据库的数据导出来,把SQLServer表中的数据导出为Excel文件有两种方式. 针对SQLServer2005或者SQLServer2008.SQLServer2008 R2 方法一:对于会写查询SQL语句的则是直接写查询语句查询出结果.如下图: 接下来到桌面新建一个空的excel文件. 接下来回到SQLServer查询界面.鼠标右键点击查询结果的左上角空白列,点击"连同标题一起复制".则已复制好了数据.如

将数据库的数据导出到excel中

这篇文章主要介绍了asp中把数据导出为excel的2种方法:分别用excel组件.文件组件实现,需要的朋友可以参考下.我们在做项目的时候经常要将数据库的数据导出到excel中,很多asp用户并不知道怎么写.这里总结了两种方法来导出excel,希望能帮到大家. 方法一:用excel组件 方法二:使用文件组件 可以看出,第一种方法是直接导出的是excel文件,而第二张方法是到处的是文本文件,只不过后缀名改成了xls. 然后看起来就是excel了. 经过对比第一种方法的效率没有第二种方法的效率高,而且