1. ホーム
  2. データベース

C#でExcelを読み込むとエラーが発生します。外部テーブルが期待された形式ではありません。

2022-03-16 20:08:49

先のログでは C#でExcelを読み込んでDataSetを返す 前回のログで、C#でExcelを読み込む方法を紹介しましたが、この方法でExcel2003を読み込んでも全く問題がないことがわかりますが、Excel2007を読み込むと、Visual Studioがエラーを報告することがわかります。外部テーブルが期待された形式ではありません。

実はこのエラーは、Excel版の接続文字列が原因なのです

先のログにある方法では、excelの接続文字列は以下のようになっています。

public static string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\WorkSpace\MyDocument\Samples2.xlsx;Extended Properties=""Excel 8.0; HDR=YES;""" ;

When reading Excel 2007 in this way, you must first open Excel manually on the current computer where it is laid out before you can run the program, which obviously won't be what we need.

To solve this problem change the OLEDB and Extended Properties versions of the connection string as follows.

public static string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\WorkSpace\MyDocument\Samples.xlsx; Extended Properties=""Excel 12.0;HDR=YES;"""";