FileHelpers 用法 z
用FileHelplers导出csv数据:
[DelimitedRecord(",")]
[IgnoreEmptyLines()]
[ConditionalRecord(RecordCondition.ExcludeIfMatchRegex, "^,+$")]
public class FormItemExport
{
[FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string Id; [FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string FirstName; [FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string LastName; [FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string Email; [FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string RewardsCardHolder; [FieldQuoted(‘"’, QuoteMode.OptionalForBoth)]
[FieldNullValue(typeof(string), "")]
public string CreateDatetime; } public class Utils
{
public delegate V ExportFill<T, V>(T inptOj); public static FormItemExport FillForm(WscLandingFormEntity le)
{
FormItemExport lre = new FormItemExport(); lre.Id = le.Id.ToString();
lre.FirstName = le.FirstName;
lre.LastName = le.LastName;
lre.Email = le.Email; if (le.RewardsCardHolder)
{
lre.RewardsCardHolder = "Yes";
}
else
{
lre.RewardsCardHolder = "No";
} lre.CreateDatetime = le.CreateDatetime.ToString("MM/dd/yyyy hh:mm:ss"); return lre;
} public static void Export<T, V>(EntityCollectionBase<T> ec, ExportFill<T, V> expF, string filename, string[] fieldsHeaders) where T : EntityBase
{
string delimiter = ",";
string qualifier = """; List<V> recordCollection = new List<V>();
foreach (T obj in ec)
{
recordCollection.Add(expF(obj));
} MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
ms.Position = 0; FileHelperEngine engine = new FileHelperEngine(typeof(V));
V[] erc = recordCollection.ToArray(); StringBuilder strOut = new StringBuilder(); for (int i = 0; i < fieldsHeaders.Length; i++)
{
strOut.Append(qualifier);
strOut.Append(fieldsHeaders[i]);
strOut.Append(qualifier);
if (i < fieldsHeaders.Length – 1)
strOut.Append(delimiter);
} engine.HeaderText = strOut.ToString();
engine.WriteStream(sw, erc); HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.AddHeader("content-disposition", "attachment; filename=" + filename);
response.ContentType = "application/vnd.ms-excel"; sw.Flush();
ms.Flush();
ms.WriteTo(response.OutputStream); ms.Close();
response.Flush();
response.End();
}
}
导出时:
Utils.Export < MclCommercialContactEntity, CommercialContactExport>
(list,new Utils.ExportFill<MclCommercialContactEntity,CommercialContactExport>(CommercialContactExport.ExportCommercialContacts), "Commercial Contacts.csv",
new string[] { "Organization", "First Name", "Last Name", "Address", "City", "Province", "Country", "Postal Code", "Phone Number", "Alternate Phone", "Email" });
FileHelpers 用法 z的更多相关文章
- 文件读取方法(FileHelpers) z
using System; using System.Collections.Generic; using System.Linq; using System.Text; using FileHelp ...
- XtraGrid的若干种用法 z
支持多种类型的数据集合作为数据源 XtraGrid与传统的DataGridView一样,支持多种类型作为其数据源.下面例子是将DataTable, List<T>和数组分别绑定到XtraG ...
- DevExpress控件XtraGrid的Master-Detail用法 z
XtraGrid支持Master-Detail展示,在自带的Demo中展示了一个“公司——产品——订单”的例子.自己照着实现了一下,有几处关键地方补充一下. 示例: 部门信息(主1)——部门下用户(从 ...
- sql with as 用法-Z
以下内容转自:http:.com/ 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个 ...
- DEV控件之ChartControl用法 z
一.总体概述 这个控件包含3层,最外面的chartControl层.中间的XYDiagram层.最里面的Series层.功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想 ...
- C#并行库(TaskParallelLibrary)用法 z
1. Task.Factory.StartNew(() => DoSomeWork());是异步的 下面的代码会先输出ddd,因为Task.Factory.Startnew不阻塞: var ta ...
- Matlab数字信号处理
产生方波 clear t=0:0.01:10; subplot(4,1,1) f1=square(t); % 产生周期为2pi的方波信号 plot(t,f ...
- Python的Numpy库简述
numpy 是 python 的科学计算库import numpy as np 1.使用numpy读取txt文件 # dtype = "str":指定数据格式 # delimite ...
- linux备忘录-shell脚本
知识 shell执行方式 shell执行方式有 通过source或. 在现在的bash环境中执行脚本 变量等会保持 通过bash shell.sh或sh shell.sh 使用一个新的bash环境执行 ...
随机推荐
- 【算法笔记】B1004 成绩排名
1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 ...
- HDU - 1427 / UESTC - 1252 经典dfs
很好奇为什么hzwer那种稍改一下还是无法过样例,代码我没看出问题 换了一种用桶组合挑取两个数不断回溯的做法 这是HDU1427的代码,后者改一改就行了 #include<bits/stdc++ ...
- gulp打包css/image/Less/Sass
其他的和打包前一篇随笔(打包js) http://www.cnblogs.com/teersky/p/7251329.html 相同,本篇文章主要写gulpFile.js的配置: 安装CSS打包插件: ...
- Python+Selenium之通过batch跑脚本
例如在执行路径C:\Portal_Scripts\Scripts下的脚本CreateIndicativeBOP.py,可以在notepad里面编写如下: @echo off cd C:\Portal ...
- Ruby初探
官方网站:https://www.ruby-lang.org/zh_cn/ 标准库API文档:http://ruby-doc.org/stdlib-2.3.0/ 简介特性安装Ruby 命令行选项编码语 ...
- 向一个GitHub repository添加协作者
第一步: 在协作者的机器(就是你的电脑啦)上创建一个ssh key (使用命令ssh-keygen) 第二步: 创建一个github账户 第三步: 把public-key添加到你的github用户账户 ...
- 基于setTimeout制作滚动广告板
很多网站在其门户页面的上方正中央都会放置一个滚动广告板,用于显示一些推荐信息,用户点击即可进入浏览.比较常见的就是各个公司的官网,电商网站的首页等. 下面是天猫的滚动广告板截图. 其实,不需要借助于什 ...
- TOJ 3744 Transportation Costs
描述 Minya Konka decided to go to Fuzhou to participate in the ACM regional contest at their own expen ...
- 6个Unity 开源项目分享!
http://gad.qq.com/article/detail/38279?sessionUserType=BFT.PARAMS.249034.TASKID&ADUIN=991655778& ...
- Eclipse error: “The import XXX cannot be resolved”
解决 Eclipse error: “The import XXX cannot be resolved” eclipse中修改: 1. 项目-->Properties-->java bu ...