4

ColdFusion で簡単なタスクを実行しようとしています: Excel ファイルを生成し、ブラウザにダウンロードします。私はこれを持っています:

<cfset local.sheet = SpreadsheetNew("My Spreadsheet", "true") />
<cfset SpreadsheetAddRow(local.sheet, "Col1,Col2,Col3") />

<cfheader name="content-disposition" value="attachment;filename=NiceName.xlsx" />
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#spreadsheetReadBinary(local.sheet)#" reset="true" />

CF9では完全に機能しましたが、CF11では機能しません。ファイルを開くと、次のように表示されます。

Die Datei 'NiceName.xlsx' cann von Excel nicht geoffnet werden, da das Dateiformat または die Dateierweiterung ungultig ist. ユーバープルフェン Sie, ob die Datei beschädigt ist und ob die Dateierweiterung dem Dateiformat entspricht.

これは次のように変換されます。

ファイル形式または末尾が無効であるため、Excel はファイル 'NiceName.xlsx' を開くことができません。ファイルが破損しているかどうか、およびファイルの末尾がファイル形式に対応しているかどうかを確認してください。


できます:

  • <cfmailparam>メールでファイルを受け取ります。
  • <cfspreadsheet action="write">シートを受信し、サーバーでファイルを受信します。

どちらの場合も、ファイルは読み取り可能です。


私が試してみました:

  • <cfspreadsheet action="write">を使用します<cfcontent file="#pathToFile#">が、これは機能しません。
  • IIS で URL-Rewrite-Rules を確認しました。
  • IIS で .xlsx MIME タイプを確認しました。それは私のコードと同じです。
  • 最後にa を追加した<cfabort>ので、何とか他に何も起こりません。

しかし、何も役に立ちませんでした。


私は使用しています:

  • ColdFusion 11 (11,0,0,289974) と Tomcat 7.0.52.0
  • Windows Server 2008 R2 標準 64 ビット
  • マイクロソフト オフィス 2013
  • IIS 7.5.7600.16385
4

1 に答える 1

0

application/vnd.ms-excelopenoffice の代わりに使用してみてください。これは、Excel 固有の MIME タイプになります。openoffice を使用している人は、そのように設定されているため、自動的に変換されます。それが私がここで見る唯一のものです。

于 2014-12-03T17:32:58.337 に答える