2012-01-12 3 views
0

Я разработчик coldfusion, работающий над приложением отчетности, чтобы отображать информацию из процесса CFSTOREDPROC. Я смог получить данные из моего запроса, чтобы отображать их правильно в CFGRID, и я действительно доволен отображением данных. Сетка экономит много времени, потому что она позволяет избежать использования тега CFOUTPUT и форматирования данных в HTML для сотен отчетов.Могу ли я добавить кнопку в CFGRID, которая позволяет пользователю экспортировать сетку в файл XLSX? Как?

Все, что я хотел бы сделать, это добавить простой значок Disk где-нибудь в элементе управления datagrid, который сохранит содержимое datagrid и экспортирует его в файл XLSX (2010), который конечный пользователь мог бы затем манипулировать в программе для работы с электронными таблицами , Это важно, потому что данные должны иметь «моментальный снимок» в определенное время года.

Решения, испробованные: Я искал ссылку со страницы параметров отчета, которая загорается на странице report_xls.cfm, но при разработке страницы, которая во второй раз ловит все параметры отчета, кажется глупым и добавит тысячи CFM на сайт.

CFSPREADSHEET, похоже, не работает по разным причинам. Во-первых, сервер, похоже, постоянно борется со мной с функцией «write» в этом теге. Другое дело, что я не знаю, как заставить javascript работать для этой кнопки, чтобы получить результат, который я хочу.

Я также изучал это как кнопку Javascript, которая срабатывала на основе введенных данных. Хотя данные из CFSTOREDPROC будут отображаться корректно, если я использую блок CFOUTPUT, CFGRID, похоже, имеет трудное время со всеми стилями вывода, кроме HTML. Это вызвало некоторые трудности с этими решениями, потому что приложение не выплевывает аккуратную таблицу HTML, а вместо этого отправляет раздел страницы javascript.

ответ

0

В блоге Раймонда Камдена содержится запись Exporting from CFGRID, которую мы использовали в нашем проекте.

Пример в экспорте статьи в формат PDF, но это достаточно просто изменить файл download.cfm экспортировать в файлы Excel, а также:

  1. Вы изменить файл для создания <table>...</table> HTML из его примера в a <cfsavecontent variable="exportList">, так что переменная #exportList# содержит таблицу, которая будет отображаться в электронной таблице.
  2. Далее у нас есть параметр URL mode, который определяет, экспортирован ли он в PDF или Excel.

Так конец нашего download.cfm выглядит следующим образом:

<cfif url.mode EQ "PDF"> 
    <cfheader name="Content-Disposition" value="inline; filename=report.pdf"> 
    <cfdocument format="pdf" orientation="landscape">  
    <cfoutput>#exportList#</cfoutput> 
    </cfdocument> 
<cfelse> 
    <cfcontent type="application/vnd.ms-excel"> 
    <cfheader name="Content-Disposition" value="report.xls"> 
    <cfoutput>#exportList#</cfoutput> 
</cfif> 
+0

Есть ли способ экспортировать Excel в XLSX версию? Я получаю всплывающее окно в Excel, говорящее: «Формат файла и расширение« имя файла »не совпадают ...», что может отпугнуть людей. Спасибо – frostshoxx

+0

Если вы используете этот метод, расширение должно быть '.xls'. '.xlsx' - более новый формат. Этот ответ немного устарел. См. Здесь [здесь] (http://stackoverflow.com/questions/15005951/how-to-create-xlsx-files-using-coldfusion). – Wernsey

Смежные вопросы