导出为CSV格式 - Linq查询 [英] Export to csv - Linq query

查看:137
本文介绍了导出为CSV格式 - Linq查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在LINQ一类查询数据库表是这样,问题是:
我如何导出数据为CSV?我曾尝试链接建议和我使用linq2csv并且仍然想知道如何通过自己的才能得到列?谢谢!

  VAR USR =从db.User 
USR选择新的{usr.UserName,usr.Dept,USR。名称)
MainListView.DataSource = USR;
MainListView.DataBind();

CsvFileDescription outputFileDescription =新CsvFileDescription
{
SeparatorChar =',',
FirstLineHasColumnNames = TRUE,
FileCultureName =EN-US
};

CsvContext CC =新CsvContext();
串finalPath = mypath中+usr_+ DateTime.Now.ToString(yyyyMMddhhmmssfff)+的.csv;
cc.Write(USR,finalPath,outputFileDescription);


解决方案

为了控制排序顺序,你必须定义类如

 公共类用户
{
[CsvColumn(字段索引= 1)] $ b属性$ b公共字符串用户名{获得;组; }

[CsvColumn(字段索引= 2)]
公共字符串系{搞定;组; }

[CsvColumn(字段索引= 3)
公共字符串名称{;组; }
}



然后你改变你的LINQ查询使用这个类,如:



 字符串mypath中= @; 

VAR USR =(从u在db.User选择新用户
{
=用户名u.UserName,
部= u.Dept,
名称= u.Name
}
);

CsvFileDescription outputFileDescription =新CsvFileDescription
{
SeparatorChar =',',
FirstLineHasColumnNames = TRUE,
FileCultureName =EN-US
};

CsvContext CC =新CsvContext();
串finalPath = mypath中+usr_+ DateTime.Now.ToString(yyyyMMddhhmmssfff)+的.csv;
cc.Write(USR,finalPath,outputFileDescription);


I have a class in linq that query db table like this, and the question is: How do I export that data to csv? I have tried link suggested and I am using linq2csv and still want to know how to get column by their order? thanks!

var usr = from usr in db.User 
select new { usr.UserName, usr.Dept, usr.Name)
MainListView.DataSource = usr; 
MainListView.DataBind();

CsvFileDescription outputFileDescription = new CsvFileDescription
                {
                    SeparatorChar = ',',
                    FirstLineHasColumnNames = true,
                    FileCultureName = "en-US"
                };

                CsvContext cc = new CsvContext();
               string finalPath = mypath + "usr_" + DateTime.Now.ToString  ( "yyyyMMddhhmmssfff" ) + ".csv";
                cc.Write( usr, finalPath, outputFileDescription );

解决方案

In order to control the sort order you must define a class with attributes like

public class User
{
    [CsvColumn(FieldIndex = 1)]
    public string UserName { get; set; }

    [CsvColumn(FieldIndex = 2)]
    public string Dept { get; set; }

    [CsvColumn(FieldIndex = 3)]
    public string Name { get; set; }
}

Then you change your linq query to use this class, eg

string mypath = @".\";  

var usr = (from u in db.User select new User 
               { 
                   UserName = u.UserName, 
                   Dept     = u.Dept    ,  
                   Name     = u.Name 
               }
          );

CsvFileDescription outputFileDescription = new CsvFileDescription
    {
        SeparatorChar = ',',
        FirstLineHasColumnNames = true,
        FileCultureName = "en-US"
    };

CsvContext cc = new CsvContext();
string finalPath = mypath + "usr_" + DateTime.Now.ToString("yyyyMMddhhmmssfff" ) + ".csv";
cc.Write( usr, finalPath, outputFileDescription );

这篇关于导出为CSV格式 - Linq查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆