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
ファイルが実際の 'xlsx'文書ではなく、単に' xlsx'に名前が変更されたテーブルを含むHTML文書である可能性はありますか? (一部のアプリケーションではExcelファイルが生成されます.MS Excelはこれらのファイルを開くことができますが、OleDBまたはOpenXMLを使用してそのファイルを読み取ろうとすると失敗します)。おそらく、メモ帳を使ってファイルを開いて、実際に 'xlsx'文書ではなくHTMLであるかどうか確認してみてください。 – bassfader
ちょうどメモ帳++でそれを開こうとしました。また、ドキュメントには、私が知る限り、HTMLとして保存することができない機能がいくつかあります。 – Neophear
[サーバー上でExcelファイルを読み取る](https://stackoverflow.com/questions/20157180/reading-excel-file-on-the-server)の可能な複製 – krillgar