Отказ от ответственности: Я новичок в coldfusion. Я пытаюсь создать документ Excel 2010 с изображениями и несколькими вкладками. Мне удалось получить это для вывода в XLS, но я не могу получить изображение в файл.Как создать xlsx-файлы с использованием coldfusion
Я не смог найти полный пример правильного создания файла XLSx. Я бы предпочел научиться правильному пути и развить свои собственные вредные привычки позже, а не просто иметь плохие привычки.
Вот пример:
<!--- Make CF export to Excel --->
<!--- This will create a XLS file --->
<!--- <cfheader name="Content-Disposition" value="attachment; filename=#URL.TRNo#_image.xls">
<cfcontent type="application/vnd.msexcel"> --->
<!--- This does not work to create an XLSX file --->
<cfheader name="Content-Disposition" value="inline; filename=#URL.TRNo#_image.xlsx">
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
<cfparam name="URL.TRNo" default="AD0310">
<cfoutput>
<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Styles>
<ss:Style ss:ID="Default" ss:Name="Normal">
<ss:Font ss:Size="11" ss:FontName="Calibri"/>
</ss:Style>
<ss:Style ss:ID="Left">
<ss:Alignment ss:Horizontal="Left"/>
</ss:Style>
<ss:Style ss:ID="Center">
<ss:Alignment ss:Horizontal="Center"/>
</ss:Style>
<ss:Style ss:ID="Right">
<ss:Alignment ss:Horizontal="Right"/>
</ss:Style>
</ss:Styles>
<Worksheet ss:Name="#URL.TRNo# page 1">
<ss:Table ss:DefaultColumnWidth="15" ss:DefaultRowHeight="15">
<Row ss:Height="51"><!--- Start Row 1 --->
<Cell ss:Index="1" ss:MergeAcross="9">
<Data ss:Type="String">Final Test Report</Data>
</Cell>
<Cell ss:Index="11" ss:MergeAcross="10" ss:StyleID="Center">
<Data ss:Type="String"><!--- <img src="http://wwwdev.elmsweb.ford.com/elmsGEN3/SafetyLab/FMVSS/ReportWriter/img/fordLogo_transparent_small.png" height="68" width="181" alt="13"> ---></Data>
</Cell>
<Cell ss:Index="22" ss:MergeAcross="9" ss:StyleID="Right">
<Data ss:Type="String">Confidential</Data>
</Cell>
</Row><!--- End Row 1 --->
<Row/><!--- Row 2 Blank --->
<Row><!--- Start Row 3 --->
<Cell ss:Index="1" ss:MergeAcross="1" ss:StyleID="Right">
<Data ss:Type="String">To:</Data>
</Cell>
<Cell ss:Index="3" ss:MergeAcross="12">
<Data ss:Type="String"></Data>
</Cell>
<Cell ss:Index="16" ss:MergeAcross="10" ss:StyleID="Right">
<Data ss:Type="String">Test Order:</Data>
</Cell>
<Cell ss:Index="27" ss:MergeAcross="4">
<Data ss:Type="String">#URL.TRNo#</Data>
</Cell>
</Row><!--- End Row 3 --->
</ss:Table>
</Worksheet>
</Workbook>
</cfoutput>
Вы пробовали использовать ColdFusion встроенный в функции электронной таблицы? [Документация для электронной таблицыНовая функция] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-747b.html). Если вы установите для параметра 'xmlformat' значение 'true', он создаст файл .xlsx. _ Вам нужно, по крайней мере, ColdFusion 9 для этих функций. –
Ни один из них не сделает файл XLS или XLSX технически, они создают XML-файл, который подается в Excel. Вы можете легко использовать 'cfheader/content' из первой строки и изменить расширение, чтобы оно« отображалось »как файл XLSX, но оно не будет в формате XLS/XLSX. – Busches
@ Miguel-F Спасибо, я думаю, что это шаг в правильном урезании. но как пользователь может получить файл, я не хочу хранить их на сервере? – BTThomas