0

私の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
4

1 に答える 1