0

OleDB を使用して Excel ファイルを作成しています。完全に機能します。次に、Office Excel で直接使用してファイルに行を追加します。その後、OleDB を使用してファイルを再度読み取ろうとすると、手動で追加した行は表示されず、ファイルを作成したときに書いた列と行。

コードは次のとおりです。

//Creation of the file
        String connectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + path + "; Mode=ReadWrite; Extended Properties= 'Excel 8.0; HDR=Yes; IMEX=0'";
        OleDbConnection oledbconnection;

        oledbconnection = new OleDbConnection(connectionString);
        oledbconnection.Open();

        String query = "CREATE TABLE [Sheet1] (....) ";

        OleDbCommand cmd = new OleDbCommand(query, oledbconnection);
        cmd.ExecuteNonQuery();

        oledbconnection.Close();

それは完全に機能し、ファイルは正しく作成されます。次に、変更後にファイルを読み込もうとすると、これを実行します

        String connectionStringRead = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + path + "; Extended Properties= 'Excel 8.0; HDR=Yes; IMEX=1'";

        OleDbConnection oledbconnection;
        oledbconnection = new OleDbConnection(connectionStringRead);
        oledbconnection.Open();

        DataTable table = new DataTable();
        String sheetName;

        sheetName = oledbconnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString();

        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", oledbconnection);
        adapter.Fill(table);

        oledbconnection.Close();
        return table;

表には元の情報のみが含まれており、MS Excel を使用して追加した行は含まれていません。

私はこれを理解していません、私を助けてもらえますか?

前もって感謝します

4

1 に答える 1