c#コードを解決してExcelファイルを読み取ると、「外部フォーム形式が一致しません」エラー
oledbdatadapterを使用してExcel(xlsx)ファイルを読み取ると、「外部フォーム形式」エラーが発生する可能性があります。このエラーは通常、XLSXファイルが共有ネットワーク位置に配置され、Microsoft Excelで事前に開いていない場合に発生します。
質問:
次のコードでXLSXファイルを読み取るとき、ファイルがExcelで開かれていない限り、エラーが発生します。 解決策:
このエラーを解決し、事前にファイルを開く必要なくExcelファイルを読み取るには、接続文字列を更新する必要があります。エラーメッセージは、接続文字列がExcel 2007ファイル形式と互換性のない古い形式を使用するため、「外部形式が一致しない」ことを示しています。
<code class="language-c#">string sql = "SELECT * FROM [Sheet1$]"; string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\""; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) { DataSet ds = new DataSet(); adaptor.Fill(ds); }</code>
推奨されるソリューションは、接続文字列を次のものに置き換えることです。 更新された接続文字列はMicrosoft.ace.oledb.12.0を使用してプログラムを提供し、拡張プロパティを12.0に拡張します。この組み合わせは、Excel 2007以降のファイル形式と互換性があり、「外部形式形式」エラーを解くことができるはずです。
以上がExcel ファイルを読み取るときに C# コードで「外部テーブルが予期された形式ではありません」というエラーが発生するのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。