我一直在挖掘过去4个小时,找到一个最简单的解决方案,将csv文件导入C#中的datagridview,我无法找到合适的解决方案。
然后绝望地,我决定要求用户先将csv转换为excel然后导入,但它太过于无意义了。 这是导入excel的代码:
string pathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
OleDbConnection conn = new OleDbConnection(pathConn);
OleDbDataAdapter ODA = new OleDbDataAdapter("Select *from [" + txtSheet.Text + "$]", conn);
DataTable dt = new DataTable();
ODA.Fill(dt);
dataGridView1.DataSource = dt;
问题: 要导入CSV,使用此代码的connectionString应该是什么。或者没有简单的灵魂?
答案 0 :(得分:1)
我的旧项目中有这个片段,希望这会有所帮助:
string csvFile = System.IO.Path.Combine(Application.StartupPath, "aCSVfile.csv");
List<string[]> rows = File.ReadAllLines(csvFile).Select(x => x.Split(',')).ToList();
DataTable dataTable = new DataTable();
//add cols to datatable:
dataTable.Columns.Add("col0");
dataTable.Columns.Add("col1");
rows.ForEach(x => { dataTable.Rows.Add(x); });
dataGridView.DataSource = dataTable;