Visual Studio 2008 を使用して、c# でコンソール アプリケーションを作成しています。
アプリケーションは、Excel ファイル 97-2003 (.XLS) を「読み取り」ます。
私はジェットを使ってファイルを読んでいます:
OleDbConnection oConn = new OleDbConnection();
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + file_path + " ;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";";
しかし、プログラムを実行すると、「外部テーブルが期待される形式ではありません」というエラーが表示されます。
NPOI ライブラリを使用して Excel ファイルを読み込もうとしましたが、エラーが発生しました:
メッセージ = 「無効なヘッダー署名です。0x0010000000060809 を読み取り、0xE11AB1A1E011CFD0 が必要です」
そのため、何らかの形でファイルが無効になっているようです。
Windows を使用して Office Excel で Excel ファイルを開き、同じ拡張子 .xls で上書きして保存し、その後コンソール アプリケーションを実行すると、アプリケーションはエラーなしで正常に実行されます。
したがって、私がやりたいことは次のとおりです。C#コードを使用して、ファイルを開いて保存し、上書きして、アプリケーションがファイルを正常に読み取れるようにします。
次のようにファイルを開くことができると思います:
File.OpenWrite(file_path);
しかし、どうすればファイルを上書きできますか?