2013-10-23 62 views
0

我有5 listboxes,我想將這5個lisboxes的內容導出爲ex​​cel。我希望這些列表框將顯示在5列中。 Listbox1 [0]應與列表框2 [0]等等(listbox3 [0],listbox4 [0],listbox5 [0])應位於同一行。將多個列表框導出爲ex​​cel或txt

我試圖將所有項目從listboxes複製到datagridview,然後導出到excell,但我只能選擇一個數據源,我沒有找到一種方法來將所有5個列表框項目複製到datagridview中的5列。

編輯:

我解決了這個代碼(感謝我的朋友)。只需創建一個數據表,導入列表項並將數據導出到csv。

//create datatable 
    DataTable dt = new DataTable(); 
    //create datatable columns 
    dt.Columns.Add("title++", typeof(string)); 
    dt.Columns.Add("title",typeof(string)); 
    dt.Columns.Add("season_name", typeof(string)); 
    dt.Columns.Add("episode_name", typeof(string)); 
    int rowCount = listBox1.Items.Count; 

    //insert lists items into datatable columns 
    for (int i = 0; i < rowCount; i++) 
    { 
     DataRow row = dt.NewRow(); 
     row["title++"] = listBox1.Items[i].ToString(); 
     row["title"] = listBox5.Items[i].ToString(); 
     row["season_name"] = listBox3.Items[i].ToString(); 
     row["episode_name"] = (listBox4.Items[i].ToString() + (" ") + listBox2.Items[i].ToString()); 

     dt.Rows.Add(row); 
    } 
    CreateCSVFile(dt, "output.csv"); 
    MessageBox.Show("Data exported."); 
+0

您好,歡迎SO!請閱讀[FAQ](http://stackoverflow.com/help/how-to-ask)瞭解如何提出一個好問題。與此同時,您可以向我們提供一些代碼,顯示您嘗試過的內容,因爲我們還希望看到一些代碼。 – wonko79

+0

請先嚐試!那麼讓我們知道你在哪裏掙扎,以便其他人可以幫忙! –

+0

對不起,我的第一個蹩腳的職位。問題解決了(我編輯第一篇文章)。 – arunelis

回答

1

您可以使用下面的代碼來寫逗號分隔值的文本文件:

List<ListBox> listBoxes = new List<ListBox>(); 

     foreach (Control c in Controls) 
      if (c is ListBox) 
       listBoxes.Add(c as ListBox); 

     int maxLineCount = listBoxes.Max(lb => lb.Items.Count); 

     StringBuilder sb = new StringBuilder(); 

     for (int rowIndex = 0; rowIndex < maxLineCount; rowIndex++) 
     {     
      for (int coulumnIndex = 0; coulumnIndex < listBoxes.Count; coulumnIndex++) 
      { 
       if (listBoxes[coulumnIndex].Items.Count > rowIndex) 
        sb.Append(listBoxes[coulumnIndex].Items[rowIndex]); 

       sb.Append(", "); 
      } 

      sb.AppendLine(); 
     } 

     File.WriteAllText("c:\\mytext.txt", sb.ToString());   
+0

謝謝。我正在努力處理這些代碼。編輯我的第一篇文章,展示我是如何結束的。但是,謝謝大家,它在這個社區的真正快速回復。 – arunelis