我使用C#導入CSV文件導入我的應用程序導入CSV文件導入使用C#
列表目前我有一個1場CSV文件。它工作的很好,但現在我想添加一個3字段的CSV文件到同一個應用程序中。
一旦數據被存儲到列表中,我將它綁定到我的DataGridView
這裏是培訓相關的代碼,我已經寫了。如果您發現任何不屬於我的問題但可能成爲問題的問題,請隨時發出警告。我一直在尋找學習和改進我的代碼。
BindingList<StringValue> data = new BindingList<StringValue>();
private void importExcelFile()
{
TextFieldParser parser = new TextFieldParser(fileName);
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
while (!parser.EndOfData)
{
//Processing row
string[] fields = parser.ReadFields();
foreach (string field in fields)
{
StringValue s = new StringValue(field);
// Issue is here. It adds it to a single dimension array. What can I do to make it multi-dimension?
data.Add(s);
}
}
parser.Close();
}
private void OnBackgroundWorkerDoWork(object sender, DoWorkEventArgs e)
{
importExcelFile();
}
private void OnBackgroundWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
dataGridView1.DataSource = data;
dataGridView1.Columns[1].Name = "URL";
dataGridView1.Columns[1].HeaderText = "URL";
dataGridView1.Columns[1].Width = 300;
dataGridView1.Columns[1].ReadOnly = true;
dataGridView1.AutoResizeColumns();
toolStripStatusLabel1.Text = dataGridView1.RowCount.ToString() + " Number Of Websites";
}
class StringValue
{
string day, time, url;
public StringValue(string s)
{
_value = s;
}
public StringValue(string[] s)
{
day = s[0];
time = s[1];
url = s[2];
}
public string Value { get { return _value; } set { _value = value; } }
string _value;
}
我想我應該修改我的StringValue類來保存我是從我的CSV文件導入多個領域。我不知道如何修改的價值一部分,當我把它綁定到我的dataGridView
謝謝您的輸入和幫助/
你當你解析CSV要非常小心。你認爲沒有引用文字。如果他們有5,6,「這也是文本」,343.33。你的字符串也會被拆分。不是你想要的。編寫你自己的解析器或使用一個。這是一個體面的。 http://blogs.msdn.com/b/jmstall/archive/2012/03/24/opensource-csv-reader-on-nuget.aspx – 2013-04-22 17:10:27