C# 导出CSV功能记录下

摘要:
例外情况1:如果组织编号00001222导出到城市CSV,则不会显示之前的四个0000。解决方案是将输出格式更改为=“00001222”异常2:PPMABAT01:/MABATAPS/usr/ma_ batas˃CH_ INS_ ID_ CD='0105840'和TRANS_ dt='20101028'首先使用“˂TRANS_DTTRANS_MT----------
异常问题1:
 如 机构编号 00001222 导出城CSV后,前面的四个0000不显示了,
解决办法   输出格式变为  ="00001222"
异常问题2:
PPMABAT01:/MABATAPS/usr/ma_batas >CH_INS_ID_CD='00105840' and trans_dt='20101028' fetch first 10 rows only with ur"              <
TRANS_DT TRANS_MT
-------- --------
20101028 075823  
20101028 075318  
20101028 075446  
20101028 075637  
20101028 075702
解决:(如果要按上面的格式输出,请用下面的方式)
try
                        {
                            entityValues[i] = entityProperties[i].GetValue(entity, null);
                            sb.Append(""" + HttpContext.Current.Server.HtmlDecode(entityValues[i].ToString().Replace(""", """").
                                Replace("
", Environment.NewLine).Replace("<BR>", Environment.NewLine)) + """);  //Replace(""", """").
                                Replace("
", Environment.NewLine).避免单元格内是SQL脚本情况换的问题,是由于字符串中含有双引号导致的。  HttpContext.Current.Server.HtmlDecode这句话可以不加,这里是应为在文本入库的时候被encode了 - -!
                            sb.Append(",");
                        }
                        catch
                        {
                            entityValues[i] = string.Empty;
                            sb.Append(""" + entityValues[i].ToString() + """);
                            sb.Append(",");
                        }
 
/// <summary>
        /// 服务单导出
        /// </summary>
        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.OverDueStatus);
                var 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("
");
                //将所有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(""" + entityValues[i].ToString() + """);    解决如果列值为空的话,后面的空行不顶上来
                            sb.Append(",");
                        }
                        catch
                        {
                            entityValues[i] = string.Empty;
                            sb.Append(""" + entityValues[i].ToString() + """);
                            sb.Append(",");
                        }
                    }
                    sb.Remove(sb.Length - 1, 1);
                    sb.Append("
");
                }
                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# 导出CSV功能记录下》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用宝塔搭建自己的网站设计模式之命令模式-JS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CDH5.4.5运行Phoenix导入CSV文件

1.安装phoenix 在界面上设置Phoenix的parcel包: http://52.11.56.155:7180/cmf/settings?groupKey=config.scm.parcel.display_group&groupParent= 添加一个Remote Parcel Repository URLsurl:http://arch...

Django入门实践(二)

Django入门实践(二) Django模板简单实例     上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Django自带的模板来学习(显示一个通讯簿)。    在views.py中添加函数addressbook   from django...

JAVA之编码----&amp;gt;CSV在文本下是正常的,用EXCEL打开是乱码的问题

JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题 在JAVA下输出文件流,保存成CSV(用UTF-8)文件,怎么处理用EXCEL下是乱码,但是在记事本等其他软件都是正常的,同时显示也是UTF-8的编码,经过测试发现如下结果: 1、EXCEL只能打开ANSI的编码,而ANSI需要当前操作系统是什么编码,就用什么编码。如中文...

jmeter数据驱动csv+批量导出数据到csv文件

基本的软件使用,我们简单一点,附图来讲,详细地方不懂的可以自行百度。 使用Jmeter 批量导入数据,之后批量导出数据到csv文件,可以帮助我们更好的整理数据,在工作中比较常用。 大致过程可以分三步:1. 导入csv文件;2. 变量引用; 3. 批量导出csv文件 1. 导入csv文件: point1:建议使用notpad, sublime等编辑器来编辑保...

MongoDB中导出数据为csv文件

1. 打开命令行; 2. 输入如下指令(确保数据库是开着的,下面的数据库名称和集合名称以及域的名称可以根据需求修改) mongoexport -d myDB -c user -f _id,name,password,adress --csv -o ./user.csv 3. 说明: mongoexport -d myDB(myDB修改成...

将字符串格式化为csv数据

fputcsv() 函数用于将数据格式为csv格式,以便写入文件或者数据库。 1.将字符串写入csv文件中 $test_array=array(array("111","sdfsd","sdds","43344","rrrr"),array("sssssssss","gdfgfd","232323","wwewe","dsfds"),array("fgf...