1

Adobe ColdFusion - 8 を使用してスプレッドシート (.XLS ファイル) を作成しようとしています。スプレッドシートを作成するコードは次のとおりです。

<cfsetting enablecfoutputonly="Yes">
<cfset date_from = "#URL.date_from#">
<cfset date_to = "#URL.date_to#">
<cfset query_id="#URL.queryID#">
<cfquery name="GetEmps" datasource="cfdocexamples">
 <!--- My SQL Queries Goes Here--->
</cfquery>

<cfcontent type="application/msexcel">
<cfheader name="Content-Disposition" value="filename=Employees.xls">
<cfoutput>
    <table cols="4">
        <cfloop query="getData">
            <tr>
                <td>#uid#</td>
                <td>#week#</td>
                <td>#book_count#</td>
            </tr>
        </cfloop>
    </table>
</cfoutput>

ページを実行するたびに XLS シートが作成されますが、データが見つかりません。作成される XLS ファイルのサイズは 0 です。

注:クエリは正しいです(出力をhtmlとして印刷すると、エラー/警告なしでテーブルを見ることができるため)。

**コメントを読んだ後:UPD**:

コードを更新し、重要なコード スニペットのみを含めました。

更新 2 :

行にコメントを付けるたびに<cfsetting enablecfoutputonly="Yes">、予想されるデータで xls ファイルが作成されます。ただし、生成されたファイルを開くと、ダイアログが表示されます。 ここに画像の説明を入力

生成されたスプレッドシートは完璧であることに注意してください。私を悩ませているのは、上記の警告だけです。また、注: スプレッドシートを google-docs でプレビューとして開こうとすると、フォーマットが破損しているため、ファイルを開けませんでした。

ただし、MS-Excel で完全に開くことができます。

コンテンツ タイプを :<cfcontent type="application/vnd.msexcel">に変更しても、同じ警告が表示されました。

4

1 に答える 1

2

これを実装する方法を正確に話すことはできませんが、私の組織内の開発者がApache POIを使用してそれを回避したことは知っています。それは彼らのためにトリックをしているように見えました。Coldfusion を介して Java で完了する必要があります。これがその例です。

于 2013-07-22T17:46:57.790 に答える