0

我有以下看法:-

@model IEnumerable<MvcApplication4.Models.customers> 

@{ 
    ViewBag.Title = "customer"; 
} 

<h3>Avialble cusotmer</h3> 
<table id ="avilalbe"> 
    <tr> 
        <th> 
           @Html.CheckBox("ORG_NAME ", true) NAME 
        </th> 
<th> 
           @Html.CheckBox("description ", true) Description 
        </th> 
    </tr> 

@foreach (var item in Model) { 
    <tr> 


        <td> 
            @Html.DisplayFor(modelItem => item.customer_NAME) 
        </td> 
<td> 
            @Html.DisplayFor(modelItem => item.description) 
        </td> 

    </tr> 
} 

   <a href=""> Extract To Excel </a>

如何根据复选框中的用户选择将模型数据提取到 .csv 中(包括名称和描述列或仅包括其中一个)。

4

2 回答 2

0

如果我理解这个问题 - 只需使用对象转储器来解析值和名称,但老实说,我无法 100% 从上述问题中准确说出您想要什么。

Objectdumper 可在此处获得:http: //blogs.msdn.com/b/ericwhite/archive/2008/08/14/object-dumper-an-invaluable-tool-for-writing-code-in-the-functional-programming -style.aspx

于 2012-12-23T10:22:40.820 回答
0

创建一个方法(类似的东西)

private static string GetCsvString(IEnumerable<Customer> customers, string separator, params string[] fields)
{
    var csvString = new StringBuilder();
    var propertyInfos = typeof (Customer).GetProperties().Where(p => fields.Contains(p.Name)).ToList();
    foreach (var customer in customers)
    {
        var currentCustomer = customer;
        csvString.AppendLine(string.Join(separator, propertyInfos.Select(p => p.GetValue(currentCustomer, null).ToString())));
    }

    return csvString.ToString();
}

然后使用它:

var csvString = GetCsvString(yourSetOfCustomers, ";", "name", "description");
File.WriteAllText("yourPath.csv", csvString);

如果您只需要描述,您将调用:

GetCsvString(yourSetOfCustomers, ";", "description");

我假设您知道如何确定您需要哪些字段(根据您对我的评论的回答)。希望你明白了。

于 2012-12-23T11:11:51.713 回答