Excelスプレッドシートを生成すると、Excel2007で開くときに「拡張子エラーとは異なるファイル形式」が発生します
質問
スプレッドシートは引き続き表示されますが、警告メッセージが表示されます。この問題は、Excel 2007が、以前のバージョンのExcelよりも拡張子に一致する形式に注意を払うために発生しているようです。
この問題はASP.Netプログラムによって最初に発見され、Excelエラーで「開こうとしているファイル「Spreadsheet.aspx-18.xls」がファイル拡張子で指定された形式とは異なります」と表示されます。。確認...」。ただし、ファイルを開くと問題なく表示されます。Excel2007を使用しています。FirefoxはファイルをExcel97-2003ワークシートとして識別します。
これが問題を引き起こすASP.NETページです: ジェネラコディセタグプレ
ファイルの背後にあるコードは次のようになります: ジェネラコディセタグプレ
}
T
解決
http://blogs.msdn.com/vsofficedeveloper/pages / Excel-2007-Extension-Warning.aspx
これは基本的に、MSが説明する問題について認識しており、ASP.NETコード内からは抑制できないことを説明するリンクです。クライアントのレジストリで抑制/修正する必要があります。
他のヒント
私のようにExcelシートを2003XMLドキュメントとして生成している場合は、次の手順で警告を削除できます。
XML出力に追加: ジェネラコディセタグプレ
ダウンロードページに追加: ジェネラコディセタグプレ
Excel 2007では、ファイルの内容とファイル拡張子が一致しないという警告が表示されなくなりました。
この質問が何度も聞かれるのを見てきました。今日も同じ問題が発生したため、NPOI npoi.codeplex.com/ を使用して問題を修正しました。 ジェネラコディセタグプレ
これがお役に立てば幸いです。
私はこの問題を数日間解決しようとしていました。最後に、ここで解決策を見つけました: http://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel-The-file-you-are-trying-to-open-is-in-a-different-format-than-specified-by-the-file-extension.aspx
名前空間: ジェネラコディセタグプレ
コード: ジェネラコディセタグプレ
私はグリッドを使用して応答タイプを変更するのが好きで、その方法論にはまだ問題がありません。ストレートタブ区切りファイルは使用していません。1つの可能性は、\ nが\ r \ nでなければならない可能性があることです。ただのブラインドショット。
使用
content-type= application / vnd.openxmlformats-officedocument.spreadsheetml.sheet
拡張子をxlsxとして指定します