一、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. 关于SQLite数据库 字段 DateTime 类型

    这两天刚接触SQLite 数据库 还没有太过于深入的了解 , 于是出现了一个问题 : 我在 C#中 ,使用SQLiteHelper 查询SQLite数据库数据时,报了这个错误: System.Form ...

  2. python_数据分析_正态分布

    Kolmogorov-Smirnov 与 Shapiro-Wilk 模型正态分布检验 Spss stata R语言正态分布 install.packages("nortest") ...

  3. [PHP] 三种运行模式 ISAPI模式 APACHE2HANDLER模式 CGI模式 FastCGI模式

    ISAPI模式:ISAPI是微软提供的一套标准,PHP的ISAPI模式意思是PHP在windows系统上的IIS进行配合的运行模式,在PHP5.3之后不再支持,php5isapi.dll文件,PHP进 ...

  4. JDK8在接口中引入的default

    default关键字介绍 default是在java8中引入的关键字,也可称为Virtual extension methods——虚拟扩展方法.是指,在接口内部包含了一些默认的方法实现(也就是接口中 ...

  5. 201871010136—赵艳强《面向对象程序设计(java)》第十三周学习总结

    201871010136—赵艳强<面向对象程序设计(java)>第十三周学习总结   博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https:// ...

  6. Maven 中 dependencyManagement 元素,知识点

    Maven 提供的 dependencyManagement 元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性.在 dependencyManagement 元素下的依赖声明不会 ...

  7. 最易用的 Android HTTP library

    原文:http://dukeland.hk/2012/08/02/the-simplest-android-http-library/ 這次要介紹的是這個來自 James Smith 的 Androi ...

  8. django之分页器、多对多关系、form校验组件

    批量插入数据 bulk_create # 1.往书籍表中插入数据 1000 # for i in range(1000): # 这种插入方式 效率极低 # models.Book.objects.cr ...

  9. js常用方法总结(以后遇到再进一步总结)

    1.index()    返回指定元素相对于其他指定元素的 index 位置. <h1>店铺评价</h1> <div class="star starcd&qu ...

  10. czy的后宫5

    题目描述 Description \(czy\) 要召集他的妹子,但是由于条件有限,可能每个妹子不能都去,但每个妹子都有一个美丽值,\(czy\) 希望来的妹子们的美丽值总和最大(虽然--). \(c ...