我正在做一個專案,我必須讀取一個 .csv 檔案,其中 csv 檔案的每一行包含 14 個欄位。但是,我只能設法用 listview 列印第一行。我根本無法讓它列印超過一行,我不知道為什么。
這是我的代碼:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
var path = @"C:\Universitet\Privat\testfil.csv";
using (TextFieldParser csvParser = new TextFieldParser(path))
{
csvParser.CommentTokens = new string[] { "#" };
csvParser.SetDelimiters(new string[] { ";"});
csvParser.HasFieldsEnclosedInQuotes = true;
//skipper kolloner
csvParser.ReadLine();
int i = 0;
ListViewItem rows = new ListViewItem();
while (!csvParser.EndOfData) {
//l?ser linje og pointer bevaeger sig til n?ste linje
string[] fields = csvParser.ReadFields();
rows.SubItems.Add(fields[0]);
rows.SubItems.Add(fields[1]);
rows.SubItems.Add(fields[2]);
rows.SubItems.Add(fields[3]);
rows.SubItems.Add(fields[4]);
rows.SubItems.Add(fields[5]);
rows.SubItems.Add(fields[6]);
rows.SubItems.Add(fields[7]);
rows.SubItems.Add(fields[8]);
rows.SubItems.Add(fields[9]);
rows.SubItems.Add(fields[10]);
rows.SubItems.Add(fields[11]);
rows.SubItems.Add(fields[12]);
rows.SubItems.Add(fields[13]);
}
listView1.Items.Add(rows);
}
}
此外,第一行僅在我實際單擊空白區域時才顯示,而不是按應有的方式在加載時顯示。
這是代碼的 輸出:代碼的輸出
uj5u.com熱心網友回復:
您的行是在回圈之前宣告的,因此每次都會對其進行編輯。
更改為:
// Call this method when you want to populate your listview
private void PopulateMyListView()
{
// if you call this method multiple times, don't forget to remove the olds rows
listview1.Items.Clear();
var path = @"C:\Universitet\Privat\testfil.csv";
using (TextFieldParser csvParser = new TextFieldParser(path))
{
csvParser.CommentTokens = new string[] { "#" };
csvParser.SetDelimiters(new string[] { ";"});
csvParser.HasFieldsEnclosedInQuotes = true;
//skipper kolloner
csvParser.ReadLine();
while (!csvParser.EndOfData) {
//l?ser linje og pointer bevaeger sig til n?ste linje
string[] fields = csvParser.ReadFields();
ListViewItem row = new ListViewItem("A NEW LINE !");
row.SubItems.Add(fields[0]);
row.SubItems.Add(fields[1]);
row.SubItems.Add(fields[2]);
row.SubItems.Add(fields[3]);
row.SubItems.Add(fields[4]);
row.SubItems.Add(fields[5]);
row.SubItems.Add(fields[6]);
row.SubItems.Add(fields[7]);
row.SubItems.Add(fields[8]);
row.SubItems.Add(fields[9]);
row.SubItems.Add(fields[10]);
row.SubItems.Add(fields[11]);
row.SubItems.Add(fields[12]);
row.SubItems.Add(fields[13]);
listView1.Items.Add(row);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/506797.html
上一篇:System.NullReferenceException:'物件參考未設定為物件的實體。在處理通過c#編輯的word檔案時
