Разделение столбцов в GridView для файлов CSV - PullRequest
0 голосов
/ 26 августа 2011

Я хотел бы получить справку о том, как разделить столбцы для отображения содержимого выгруженных файлов CSV.

//  get all lines of csv file
     string[] str = File.ReadAllLines(Server.MapPath("~/MyPlace"));

    // get the column header means first line
    string[] temp = str[0].Split(',');
    // creates columns of gridview as per the header name

     // now retrieve the record from second line and add it to datatable
    for(int i=1;i<str.Length;i++)
    {
        string[] t = str[i].Split(',');


    }
    // assign gridview datasource property by datatable
    myGridView.DataSource = str;
    // bind the gridview
    myGridView.DataBind();

Как вы можете видеть, я уже делал разбиение с помощью команды Split (','), но когда я отлаживаю его, он отображает все содержимое в одном столбце, а не в разных строках и столбцах. Как разделить содержимое на разные столбцы и строки?

1 Ответ

2 голосов
/ 26 августа 2011

да, вы сделали разделение, но вы сохранили результат в локальной переменной t внутри вашего цикла и никогда не использовали его.Вы можете попробовать

var data =
   File.ReadAllLines(Server.MapPath("~/MyPlace"))
   .Select(line => line.Split(','))
   .Select(columns => new {FirstColumnName = columns[0], SecondColumnName = columns[1] /*, ... */});
myGridView.DataSource = data;
myGridView.DataBind();

Этот фрагмент должен просто читать ваш файл построчно, сначала разбивая строки на массивы (столбцы), а затем создавая анонимный объект класса для каждой строки, содержащей FirstColumName = первый элемент в строке,и т. д.

Пример:

    var test = "Donald,Duck\nMickey,Mouse";

    var data =
       test.Split('\n')
       .Select(line => line.Split(','))
       .Select(columns => new { FirstColumnName = columns[0], SecondColumnName = columns[1] /*, ... */});

    GridView1.DataSource = data;
    GridView1.DataBind();

, имея только простейшую страницу (просто перетащив GridView на страницу), дает следующее: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...