私のExcel(.xls、.xlsxタイプのファイル)のSheet1がこの形式で、ReadExcelを使用すると、Excelに表示されているようにこのデータをグリッドにバインドできます。
ID Name Code
1 Mark ABC001
2 Ryan BBC001
3 Will CBC001
カンマ区切り (ID) と \n (キャリッジ リターン - コード - 2 行目) を含むデータがある場合、3 行すべてを取得するのではなく、1 行目と 3 行目を取得します。
ID Name Code
1 Mark ABC001
2,5 Ryan,John BBC001
DBC001
3 Will CBC001
メソッド呼び出しは次のとおりです。
private void ReadExcel(string filePath)
{
DataTable table = new DataTable();
table.Columns.Add("ID", typeof(string));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Code", typeof(string));
string connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"", filePath);
using (OleDbConnection dbConn = new OleDbConnection(connString))
{
using (OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM [Sheet1$]", dbConn))
{
dbConn.Open();
using (OleDbDataReader reader = cmd.ExecuteReader())
{
DataRow row;
while (reader.Read())
{
row = table.NewRow();
row["ID"] = (string)reader[0];
row["Name"] = (string)reader[1];
row["Code"] = (string)reader[2];
table.Rows.Add(row);
}
}
}
}
}
このようにデータを取り戻すことができるように、これを処理することについて何か考えはありますか?
ID Name Code
1 Mark ABC001
2 Ryan BBC001
5 John DBC001
3 Will CBC001