2017-12-06 8 views
1

私は奇妙な問題を抱えています。ウェブサイトからExcelファイル(.xls)を取得してJSONとしてデータを公開しています。実際のデータでテストを開始するまでダミードキュメントを使用して、ファイルをダウンロードしてコードを実行してからExcelを開くと、「外部テーブルが予期されたフォーマットではありません」というメッセージが表示されます。 「ファイルが拡張子で指定されたものとは異なるフォーマットです」という警告が表示されますが、Excelで保存すると(2010)、同じフォーマットと拡張子を保持するオプションを選択するとすぐに機能します。私が考えていた回避策は、各ダウンロードサイクルの後にファイルを開いて保存することを自動化することですが、代わりに実際の解決策を見つけることが大好きです。 Excel コード:var pathToExcel = @"\source\repos\Rica2.0\reports\DataExport.xls"; var sheetName = "Export"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", pathToExcel);OLEDB外部テーブルが拡張子と異なるフォーマットの予期された書式/ファイルにありません

+0

大文字の段落と正しい使い方の欠如は、この質問を読みにくいものにします。 – mjwills

答えて

1

問題は、Web開発者は、テーブルを含むHTMLファイルを作成し、それをXLS拡張子ではなく、htmlの拡張子を与えるということです。彼らは、ユーザーエクステンションのアソシエイトがExcelで開くようにし、Excelでhtmlをうまく解析できることを知っています。その迷惑なメッセージ以外、それは動作します。

1つのオプションは、ダウンロード後にファイル拡張子をhtmlに変更することです。 Excelは引き続きHTMLファイルを開きますので、メッセージは表示されません。プログラム的にこれをやっているので、シェルがファイルアソシエーションを介して開くプログラムを作る必要はありません。

+0

ありがとう、私はxslbの拡張機能を変更して同じことをやってくれてありがとう、私のために解決しましたが、名前を変更せずにC#で直接ファイルを解析する別の方法がありますか?それは新しいダウンロードをチェックするために異なるディレクトリのトンのためのディレクトリウォッチャーを作成することを含むでしょう –

+0

はい。それはあなたが他のhtmlファイルと同じように解析できるように、単なるhtmlファイル(テキスト)です。私は、テーブルタグを見つけることができ、trタグをループし、tdタグをループするライブラリをc#に持っていると確信しています。 VBAのXMLライブラリですが、C#で何がわかっているのですか? –

+0

これを明確にする時間を取ってくれてありがとう、私はそれを試してみる –

関連する問題