Menyelesaikan kod C#untuk membaca fail Excel, "Format Borang Luaran tidak sepadan" ralat
Apabila membaca fail Excel (xlsx) dengan oledbdatAdapter, anda mungkin menghadapi ralat "format borang luaran". Kesalahan ini biasanya berlaku apabila fail XLSX terletak di kedudukan rangkaian bersama dan tidak dibuka terlebih dahulu di Microsoft Excel.
<:> Soalan:
Apabila membaca fail XLSX dengan kod berikut, kecuali fail telah dibuka dalam Excel, ralat akan ditemui:
Penyelesaian:
<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>
Penyelesaian yang disyorkan adalah untuk menggantikan rentetan sambungan ke yang berikut:
Rentetan sambungan yang dikemas kini menggunakan microsoft.ace.oledb.12.0 untuk menyediakan program dan menetapkan sifat lanjutan untuk Excel 12.0. Gabungan ini serasi dengan format fail Excel 2007 dan versi yang lebih tinggi, yang sepatutnya dapat menyelesaikan ralat "format format luaran".
Atas ialah kandungan terperinci Mengapa Kod C# Saya Mendapat Ralat 'Jadual Luaran Tidak Dalam Format Jangkaan' Semasa Membaca Fail Excel, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!