2017-08-08 17 views
0

xlsxファイルをアップロードできるWebサイトがあります。私のアプリケーションは、コンテンツを読み込み、いくつかのことを行います。 しかし、一部のユーザーがファイルをアップロードすると、アプリケーションで「外部テーブルが期待どおりの形式ではありません」というエラーメッセージが表示されます。C#でOLEDBを使用してxlsxファイルを読み取れません

Excel 2007を使用しているユーザーがいます。私のExcel 2013で彼のファイルを保存し、何も変更せずに保存してもうまくいきます。

これは、OLEDBのたconnectionStringです:

OleDbConnection oledbConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; 
     Data Source=" + filepath + @"; 
     Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';"); 

そして私はMicrosoftのAccessDatabaseEngineがインストールされています。

新しく保存されたファイル(Excel 2013)の名前を* .zipに変更すると、rar/explorerで開くことができますが、ファイル(Excel 2007)で同じことをしようとするとそれを開かないでください。

編集:今私は2007年と2013年の両方を持っているので、2007年に私のPCにOffice 2007をインストールしました。 その後、私は2007年に保存したときに同じファイルでzip-trialをやりました。私が2013年に救ったときにうまくいきました。私は同じファイルを前後に何度もやりました。同じ結果。

Edit2:代わりにEPPlusを提案して使用しましたか?同じ結果。エクセル2013で保存されたとき、正常に動作しますが、私はここに掲載されて答えに出くわしましたグーグルでいくつかのより多くの後にエクセル2007

+0

ファイルが実際の 'xlsx'文書ではなく、単に' xlsx'に名前が変更されたテーブルを含むHTML文書である可能性はありますか? (一部のアプリケーションではExcelファイルが生成されます.MS Excelはこれらのファイルを開くことができますが、OleDBまたはOpenXMLを使用してそのファイルを読み取ろうとすると失敗します)。おそらく、メモ帳を使ってファイルを開いて、実際に 'xlsx'文書ではなくHTMLであるかどうか確認してみてください。 – bassfader

+0

ちょうどメモ帳++でそれを開こうとしました。また、ドキュメントには、私が知る限り、HTMLとして保存することができない機能がいくつかあります。 – Neophear

+0

[サーバー上でExcelファイルを読み取る](https://stackoverflow.com/questions/20157180/reading-excel-file-on-the-server)の可能な複製 – krillgar

答えて

0

で保存されたときに動作しません:エラー時には Error reading xlsx (2007) file in EPPLUS

それが表示されていることドキュメントはパスワードで保護され、Excel 2007で保存されます。すべての保護を削除してもう一度保存すると(Excel 2007でも)、機能しました。