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环境执行 ...
随机推荐
- BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~
据说某谷数据十分水...但幸好BZOJ上也过了...话说我记得讲课时讲的是奇奇怪怪的离散化..但现在突然觉得什么都可以线段树瞎搞了...QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return: ...
- Codeforces - 915E 离散化区间覆盖
我一直以来都错认为离散化就是换个映射,其实还需要在离散值两端加上相差为1的值才能真正离散 不然看一下test3就知道 不过这个离散姿势太暴力,以至于我1000ms时限跑出998ms(其实是太懒没有删重 ...
- windos下redis服务的后台启动
1. 进入 DOS窗口 2. 在进入Redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...
- phantomJs原理
引用文段:链接:https://www.jianshu.com/p/0254391918f7 网页渲染可分为服务端渲染和客户端渲染,前者是指你在浏览器地址栏输入一个网址,Web服务器处理请求过程就将所 ...
- PHP 编译安装 gd 库
作者博文地址:https://www.cnblogs.com/liu-shuai/ 安装gd依赖库 freetype wget http://download.savannah.gnu.org/rel ...
- (转) CentOS 7添加开机启动服务/脚本
CentOS 7添加开机启动服务/脚本 原文:http://blog.csdn.net/wang123459/article/details/79063703 一.添加开机自启服务 在CentOS 7 ...
- 数组和json的相互转换
json_encode() <?php /*****一维数组*********/ //有键 $arr = array( 'a'=>1, 'b'=>2, 'c'=>3, ); $ ...
- 调用sqlserver中的存储过程
1.存储过程名 string strSQL = "usp_GetUnReturnPassports"; 2.创建数据库对象 database Database db = Datab ...
- bzoj 4574: [Zjoi2016]线段树
Description 小Yuuka遇到了一个题目:有一个序列a_1,a_2,?,a_n,q次操作,每次把一个区间内的数改成区间内的最大值,问 最后每个数是多少.小Yuuka很快地就使用了线段树解决了 ...
- 【linux】netstat 详解
Linux netstat命令用于显示网络状态. 利用netstat指令可让你得知整个Linux系统的网络情况. 在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访 ...