SOAP ツールボックス (サポートされなくなりました) を使用して Web サービスへの呼び出しを行っていた Excel 2003 スプレッド シートを、VSTO を使用して Excel 2010 に変換しました。
スプレッドシートはうまく機能し、(ほとんど)本来の機能を果たします。今は、Web サイトからユーザーが利用できるようにしたいと考えています。
まだ利用可能な 2003 バージョンを提供するのと同じはずだと思っていたので、基本的には Excel 2003 スプレッドシートのダウンロード ボタンを複製しました。
2010 スプレッドシートでこれを試すと、次のような Excel エラーが表示されます。
"Excel は "SpreadSheet_name.xlsx" に判読できないコンテンツを検出しました。このブックのコンテンツを復元しますか? このブックの発行元が信頼できる場合は、[はい] をクリックしてください。
その後、Excel で問題が修正され、スプレッドシートを通常どおり使用できるようになります。
ダウンロード元のソース フォルダーからスプレッドシートを開くと、上記のエラーが修正されてファイルが保存されると、まったくエラーなく開きます。
これは、現在の Excel 2003 ダウンロード ボタンに使用されるコードです -
Response.WriteFileAsAttachment("application/ms-excel", Server.MapPath("~/pathname/Spreadsheet_2003.xls"), 8192);
Response.End();
これは、Excel 2010 の更新された MIME 情報を含む 2010 のダウンロード ボタンのクリックに対して私が持っているものです -
Response.WriteFileAsAttachment("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", Server.MapPath("~/pathname/Spreadsheet_2010.xls"), 8192);
Response.End();
さまざまなフォーラムで提案されたいくつかのことを試しましたが、すべて同じ結果になりました。
これをテストするために、VS 2010 で実行されている C# と ASP.Net を使用しています。
ヘルプやアドバイスをいただければ幸いです。
ありがとう、ジョージ。