首頁 > 後端開發 > C++ > 為什麼我的 C# 程式碼在讀取 Excel 檔案時出現「外部表不是預期格式」錯誤,如何修復它?

為什麼我的 C# 程式碼在讀取 Excel 檔案時出現「外部表不是預期格式」錯誤,如何修復它?

Linda Hamilton
發布: 2025-01-26 17:31:39
原創
624 人瀏覽過

Why Does My C# Code Get an

解決C#程式碼讀取Excel檔案時出現的「外部表格式不符」錯誤

使用OleDbDataAdapter讀取Excel (xlsx)檔案時,可能會遇到「外部表格式不符」錯誤。此錯誤通常發生在xlsx檔案位於共用網路位置且未在Microsoft Excel中預先開啟的情況下。

問題:

使用以下程式碼讀取xlsx檔時,除非檔案已在Excel中打開,否則會遇到錯誤:

<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>
登入後複製

解:

為了解決此錯誤並在無需預先開啟檔案的情況下讀取Excel文件,需要更新連接字串。錯誤訊息表示“外部表格式不符”,因為連接字串使用了與Excel 2007檔案格式不相容的舊格式。

建議的解決方案是將連接字串替換為以下內容:

<code class="language-c#">string path = @"C:\src\RedirectApplication\RedirectApplication1s.xlsx";
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";</code>
登入後複製

此更新後的連線字串使用Microsoft.ACE.OLEDB.12.0提供者並將Extended Properties設定為Excel 12.0。此組合與Excel 2007及更高版本的檔案格式相容,應該可以解決「外部表格式不符」錯誤。

以上是為什麼我的 C# 程式碼在讀取 Excel 檔案時出現「外部表不是預期格式」錯誤,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板