Могу ли я добавить кнопку в CFGRID, которая позволяет пользователю экспортировать сетку в файл XLSX? Как? - PullRequest
0 голосов
/ 13 января 2012

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

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

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

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

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

1 Ответ

0 голосов
/ 17 января 2012

Блог Раймонда Камдена содержит запись Экспорт из CFGRID , который мы использовали в нашем проекте.

Пример в статье экспортирует в PDF, но изменить * 1005 довольно просто.* файл для экспорта также в файлы Excel:

  1. Вы модифицируете файл для генерации HTML <table>...</table> из его примера в теге <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>
...