下面的代码提示用户选择csv文件,然后根据列名称将数据解析到数据表中。因此,如果CSV文件的第一行显示" Col1"并且表中有一个" Col1"在列中,Col1下CSV文件中的所有数据都将作为填充在DataTables Col1下的行放入。
如果CSV中的列名称与DataTable中的任何内容不匹配,则会抛出"外部表格不符合预期格式。"错误。
我想更改系统,以便以不太智能的方式上传。然后我将为用户提供在WPF窗口中手动分配列的选项。
有谁知道如何让它只上传原始数据?忽略列名,只将CSV的第一列中的所有内容放入DataTable的第一列?
try
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
if (openFileDialog1.ShowDialog().Value)
Console.Out.WriteLine(openFileDialog1.FileName);
string pathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openFileDialog1.FileName + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=2\"";
OleDbConnection conn = new OleDbConnection(pathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from [" + "sheet1" + "$]", conn);
myDataAdapter.Fill(displayTable);
} catch (Exception e)
{
MessageBox.Show("Error! : " + e.Message);
Console.Out.WriteLine(e.Message);
}