50610


c# でexcelファイル（xls）を読み込んだ値を別のテキストファイルに出力する処理をwindowsサーバー上で検討中です。  
なお、この処理はタスク起動によるバックグラウンド処理となります。

前回の質問：[c#でのExcelファイル読み込み方法について](https://ja.stackoverflow.com/questions/50337/c%e3%81%a7%e3%81%aeexcel%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e8%aa%ad%e3%81%bf%e8%be%bc%e3%81%bf%e6%96%b9%e6%b3%95%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6)

オープンソースの使用は避けたい中、ADO.NET (ODBC）を使用した方法は、  
どうかと考えております。

windows server 2012 R2にデフォルトでインストールされているODBC Excelドライバー 32bit
でExcelファイル（xls、xlsx）の読み込みは可能でしょうか？  
可能であればExcelのインストールをしないでc#の標準の機能だけで対応可能と考えております。


CC BY-SA 4.0
2018-11-20T05:08:39.043
50460
2018-11-25T10:34:33.960
2018-11-25T09:18:43.780
9228
9228
question
c#
c#でのADO.NET を用いたExcelファイル読み込み方法について


多分出来るんじゃないでしょうか。こんな記事があります。  
概要はGoogle翻訳で訳せばわかるでしょう。  
[Getting Data between Excel and SQL Server using ODBC](https://www.red-
gate.com/simple-talk/sql/database-administration/getting-data-between-excel-
and-sql-server-using-odbc/)

ただ、こちらにあるように動いているExcelの64bit/32bitの別で影響があるかもしれません。  
[ODBCのText
DriverとExcelとを使ってCSVファイルをSQLで検索・抽出する](http://haneimo.hatenablog.com/entry/20160830/1472527773)

> 注意しなければならないのは、、、  
>  Excelが32bit版ならOS付属の32bit版のTextDriverを使う。  
>  Excelが64bit版ならAccessに付属している64bit版のText Driverを使う。

それからWindows Updateの適用状況によっては、不具合が出る場合があるようです。  
[【KB4041681】外部データベース
ドライバー(1)で予期しないエラーが発生しました。](https://qiita.com/yaju/items/2d05527ff64643c99fcf)


CC BY-SA 4.0
2018-11-25T10:16:58.240
50609
2018-11-25T10:16:58.240
26370
50460
answer


Excelは表計算ソフトであり、厳密にはデータベースではありません。データベース的なアクセス方法で問題ないのでしょうか？

Windowsには

  * [ODBC Jet SQLConfigDataSource (Excel Driver)](https://docs.microsoft.com/en-us/sql/odbc/microsoft/odbc-jet-sqlconfigdatasource-excel-driver?view=sql-server-2017)
  * [Microsoft OLE DB Provider for Microsoft Jet Overview](https://docs.microsoft.com/en-us/sql/ado/guide/appendixes/microsoft-ole-db-provider-for-microsoft-jet?view=sql-server-2017)

などがインストールされていますが、これらは互換のために残されているコンポーネントで32bit版しか提供されていません。ODBCよりはOLE
DBの方が使われている気がします。  
これらとは別に

  * [ACE; Microsoft Access Database Engine 2016 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=54920)

が用意されています。こちらは個別にインストールする必要がありますが、ExcelやAccess本体は不要です。また64bit版も提供されています。ただし、残念なことに公式ドキュメントはなさそうです。


CC BY-SA 4.0
2018-11-25T10:34:33.960
50610
2018-11-25T10:34:33.960
4236
50460
answer