Подпишитесь на RSS, чтобы всегда быть в курсе событий.
Комментарии
- Denis: Попробуйте обновить кэш
- porcelanosa: У меня почему-то ничего не появилось — т.е. после применения к странице шаблона — ничего не...
- Mark Hamstra: I used Google Translate to read this post, and just wanted to add that those issues should have been...
- безимени: все было бы прекрасно если бы не гигантское количество грамматических ошибок. Серьезно. Глаза режет
- Vasiliy Ivanov: Уже есть рабочий плагин, если готовы заняться — ради бога.=) Напишите только в разработчики...
С наступившим новым годом
Читайте так же:Снова про книгу о MODxИнтересное наблюдениеС новым годомРазговором с начальством навеянноСамооборона 100%
Снова eu-asien.de
Некоторое время назад я уже писал про этот сайт. Идеи по поводу улучшения сайта у Геннадия были уже давно, а с выходом новой версии MODx было принято решение полностью переписать сайт на новый движок. Тем более, что был разработан новый дизайн. В сентябре прошлого года начались работы по созданию нового сайта, при этом новую версию [...]
Метки
Ссылки
Отображаем в MODx Evo данные из excell
Раннее, я уже упоминал библиотеку для работы с Excel файлами PHPExcel. Недавно пришлось для нескольких сайтов возможность отображения данных из Excel файла. Далее этот процесс расписан по шагам. Для профессионалов эта статья вероятно не откроет ни чего нового, но вот для тех, у кого есть время только на ответы она может быть полезной
Итак, для начала скачиваем последнюю версию библиотеки и распаковываем её на своем компьютере. Далее на сервере в папке assets создаем новую папку lib и копируем туда папку Classes, из распакованного архива.
Заходим в админку и создаем новый TV-параметр с именем xlsFile, типом File и подключаем его к нужным нам шаблонам, жмем «сохранить».
После этого создаем новый сниппет с именем showXls и следующим содержимым.
<?php require_once 'assets/lib/Classes/PHPExcel/IOFactory.php'; //получить имя файла с таблицей $xls=$modx->getTemplateVarOutput(array('xlsFile'),$modx->documentIdentifier); $xls=$xls['xlsFile']; //имя файла с таблицей в формате html $htm=str_replace('.xlsx','.htm',$xls); //читаем данные из xlsx файла $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($xls); // и записываем их в html $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); $objWriter->setSheetIndex(0); $objWriter->save(str_replace('.xlsx', '.htm', $xls)); // получаем данные из html файла $table=file_get_contents($htm); // получаем и обрабатываем таблицу стилей $style=preg_match('|(<style [^>]+>[^<]+<\/style>)|',$table,$matches); $style=str_replace(array('display:none;','visibility:hidden','*display:none','visibility:collapse;'),'',$matches[1]); echo $style; //получаем собственно ваму таблицу и выводим её $output=substr($table,strpos($table,'<body>'),strpos($table,'</body>')-strpos($table,'<body>')); $output=str_replace('border="0" cellpadding="0" cellspacing="0"','border="1" cellpadding="1" cellspacing="1"',$output); //$header=$modx->getObject('modChunk',array('name'=>'tableHeader')); echo $output; ?>
Сохраняем сниппет, и в шаблоне или в поле content документа в месте, где должна находиться таблица вставлем вызов.
[!showXls!].
Идем во фронтенд и смотрим на результаты.
Несколько замечаний.
1) В данном примере, файл используемый для отображения должен быть сохранен в формате MS Excel 2007 XML
2) после редактирования xlsx файла и сохранения в нем оказывается 256 строк и 256 столбцов в не зависимости от того сколько ячеек заполнено в действительности. По этому редактируйте xls файл и сохраняйте как xlsx(по крайней мере если используете LibreOffice).
Конечно у данног решения полно недостатков и всё можно написать по другому. По этому жду ваших отзывов, комментариев и предложений
Читайте так же:
-
Eagel_nest
-
http://loom-studio.net Denis
-
http://loom-studio.net Denis
-
http://www.blod.topsector.ru/ Виктор Черкасов
-
http://loom-studio.net Denis
-
Eagle_nest
Рубрики
Архивы
- Май 2012
- Февраль 2012
- Январь 2012
- Ноябрь 2011
- Октябрь 2011
- Июль 2011
- Июнь 2011
- Май 2011
- Апрель 2011
- Март 2011
- Февраль 2011
- Январь 2011
- Декабрь 2010
- Июль 2010
- Июнь 2010
- Март 2010
- Февраль 2010
- Январь 2010
- Декабрь 2009
- Ноябрь 2009
- Октябрь 2009
- Сентябрь 2009
- Август 2009
- Июнь 2009
- Май 2009
- Апрель 2009
- Март 2009
- Февраль 2009
- Январь 2009

