1

DataSet にデータを読み取り、後で DataGridView で表示するために、OLE 関連の API を使用しています。ソースはエクセルファイルです。最初の行または列が空の場合、その行または列はスキップされます。データが空であるかデータがあるかに関係なく、データを読み取りたいです。空の場合でも他の行/列は正常に機能しますが、開始のみが欠落しています。

ColumnHeader について読んで、connectionString (HDR=NO) などを変更しようとしましたが、何もうまくいきませんでした。

API の呼び出し中に指定する必要がある追加事項はありますか? この最初の空白行/列をスキップするため、Excel 列と DataGridView 列との 1 対 1 のマッピングが失われます。

この OleDbDataAdapter パラメーターに何かを追加/変更する必要があります。実際にデータを読み取り、データセットに入力します。

    OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
                    "select * from [" + worksheetName + "$]", con);

はい、必要な情報を設定し、各シートからデータを読み取るメソッドを呼び出しています。行/列を読み取る以外のアクションは実行していません。

    OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);

    System.Data.DataTable getWorksheetData(OleDbConnection con, OleDbDataAdapter cmd)
    {
        con.Open();
        System.Data.DataSet excelDataSet = new DataSet();

        cmd.Fill(excelDataSet);
        con.Close();

        return excelDataSet.Tables[0];
    }

私の接続文字列は次のとおりです。

    string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
        fileName + "; Extended Properties=\"Excel 12.0 Xml;HDR=NO;Mode=Read;ReadOnly=True;\"";
4

0 に答える 0