一、C#导出csv格式代码如下:

         /// <summary>
/// 下载
/// </summary>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
public void Download(DateTime? startTime, DateTime? endTime)
{
Response<VSysLog> _rsp = new Response<VSysLog>();
try
{
using (NetEntities et = new NetEntities())
{
startTime = startTime == null ? DateTime.Now.AddMonths(-) : startTime.Value;
endTime = endTime == null ? DateTime.Now : endTime.Value;
int deviceType = (int)EnumDeviceType.网关设备; //搜索条件
var whereQuery = PredicateExtensions.True<net_warninglog>();
//搜索条件---开始时间和结束时间
whereQuery = whereQuery.And(n => n.WarningTime >= startTime && n.WarningTime <= endTime);
//搜索条件---设备类型
whereQuery = whereQuery.And(n => n.DeviecType == deviceType);
//搜索条件---模糊查询
if (!string.IsNullOrEmpty(Request["condition"]))
{
string condition = Request["condition"];
whereQuery = whereQuery.And(n => n.WarningSource.Contains(condition));
}
List<VWarningLog> logList = et.net_warninglog.Where(whereQuery.Compile()).AsEnumerable().Select(n =>
new VWarningLog
{
id = n.ID,
warningName = n.WarningName,
warningReason = n.WarningReason,
deviceType = Enum.GetName(typeof(EnumDeviceType), n.DeviecType),
warningSource = n.WarningSource,
descr = n.Descr,
warningTime = n.WarningTime.ToString("yyyy-MM-dd HH:mm:ss")
}).OrderByDescending(x => x.warningTime).ToList(); System.IO.StringWriter sw = new StringWriter();
StringBuilder sbTitle = new StringBuilder();
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
//定义模版(标题、内容字段、格式化参数)
string[,] template = new string[,] {{ "终端编号,", "warningSource", "{0}"}, { "设备类型,", "deviceType", "{0}" }, { "报警原因,", "warningReason", "{0}"},
{ "报警信息,", "warningName", "{0}" }, { "描述", "descr", "{0}" }, { "报警时间", "warningTime", "{0}" } };
string strLine = "";
sw = new StringWriter();
//获取模板的行数
int colCount = template.GetLength();
//表头
for (int i = ; i < colCount; i++)
{
//在模板里面已经添加了逗号
strLine += template[i, ];
}
strLine.Remove(strLine.Length - );
sw.WriteLine(strLine);
strLine = ""; //表的内容
for (int j = ; j < logList.Count; j++)
{
strLine = "";
for (int k = ; k < colCount; k++)
{
if (k > && k < colCount)
{
strLine += ",";
}
string cell = "";
string data = string.Format(template[k, ], logList[j].GetType().GetProperty(template[k, ]).GetValue(logList[j], null));
if (string.IsNullOrEmpty(data))
{
strLine += "";
}
else
{
//前面加的单引号则是防止数字被转换成其它格式
cell = "'" + data.Trim();
}
//防止里面含有特殊符号
if (!string.IsNullOrEmpty(cell))
{
cell = cell.Replace("\"", "\"\"");
cell = "\"" + cell + "\"";
strLine += cell;
}
}
sw.WriteLine(strLine);
}
string attachment = "attachment; filename=" + DateTime.Now.ToString("yyyy年MM月dd日HH点") + "网关报警日志.csv";
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "text/csv";
Response.AddHeader("Pragma", "public");
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
//防止中文乱码
Response.BinaryWrite(new byte[] { 0xEF, 0xBB, 0xBF });
response.Write(sw.ToString());
Response.End();
sw.Close();
}
}
catch (Exception ex)
{
_rsp.code = (int)EnumCode.程序异常;
_rsp.msg = ex.Message;
LogHelper.WriteLog(className, "Download", ex);
}
}

仅作为保存,方便日后查看代码。

C#下载csv代码总结的更多相关文章

  1. 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码

    利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码 2014-07-31 12:53 1047人阅读 评论(0) 收藏  ...

  2. 使用JavaScript下载csv文件

    前端可以使用JavaScript在客户端下载包含页面数据的文件,这里以下载CSV格式文件为例,代码如下: function downloadData(data, filename, type) { v ...

  3. js实现使用文件流下载csv文件

    1. 理解Blob对象 在Blob对象出现之前,在javascript中一直没有比较好的方式处理二进制文件,自从有了Blob了,我们就可以使用它操作二进制数据了.现在我们开始来理解下Bolb对象及它的 ...

  4. 108.生成和下载csv文件

    生成CSV文件 有时候我们做的网站,需要将一些数据,生成一个csv文件返回浏览器,并且是作为附件的形式下载下来. 生成小的csv文件: 生成一个小的csv文件,我们用Python内置的csv模块来处理 ...

  5. PHP生成迅雷、快车、旋风等软件的下载链接代码实例

    PHP生成迅雷.快车.旋风等软件的下载链接代码实例 <?php function Download() { $urlodd=explode('//',$_POST["url" ...

  6. LINUX安装SVN+添加自动同步+远程下载最新代码

    LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...

  7. 关于无法全然下载CyanogenMod代码的问题

    CyanogenMod真的是一个奇妙的东东,它让开发手机固件不再是手机生产商的专利,每一个有志于此的程序猿都可能为自己的手机定制一份专有的,独一无二的固件,这在曾经是想都不敢想的. 而且Cyanoge ...

  8. eclipse 中git无法https下载提交代码

    使用eclipse下载github代码时,报错信息为cannot open git-upload-pack,如下图: 其实就是ssl协议的版本不对, 2018年2月8日后禁止通过TLSv1.1协议连接 ...

  9. 使maven2在下载依赖包的同时下载其源代码包。

    使maven2在下载依赖包的同时下载其源代码包的方法: 1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码. 2. 使用参数: -DdownloadSource ...

随机推荐

  1. Python从零开始——元组tuple

    一:元组知识内容 二:元组的不可变性 三:元组创建 四:元组操作

  2. 今晚,玩一玩linux上的DNS

    老哥遇到的问题, 我先按正规方式操作一波. 一,安装dns服务 yum install bind bind-utils -y 二,修改/etc/named.conf文件 options { liste ...

  3. Spring服务发现和注册

  4. 201871010118-唐敬博《面向对象程序设计(JAVA)》第十四周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 <<https://home.cnblogs.com/u/nwnu-daizh/>> 这个作业的要求在哪里 < ...

  5. 代码审计-数组返回NULL绕过

    <?php $flag = "flag"; if (isset ($_GET['password'])) { if (ereg ("^[a-zA-Z0-9]+$&q ...

  6. 接口规范、容错处理规则、aph备份数据规则

    前话:前后解耦,前端开发环节使用APH,后台开发环节postman(可考虑为后台也做一个aph后台版) 1.api标准:标识符(ret:1为正常数据,0为接口报错),数据体(data:api的数据容器 ...

  7. Python进阶-VII 内置函数

    一.内置函数引入 我们已经了解的有; print()  input() range() next()  dir() str() int() list() set() tuple() dict() he ...

  8. 清理C盘临时文件脚本

    @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._m ...

  9. 在程序中修改IP win7 winXP(参考1)

    https://blog.csdn.net/bbdxf/article/details/7548443 Windows下程序修改IP的三种方法 以下讨论的平台依据是Window XP + SP1, 不 ...

  10. NOI 2019 退役记

    非常抱歉,因为不退役了,所以这篇退役记鸽了.