Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHPExcel

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
Выгружать данные у меня получается, хочу теперь красоту навести, автофильтр добавить.
Делаю так:

Код:
 
$autoFilter = $aSheet->getActiveSheet()->getAutoFilter();
$columnFilter = $autoFilter->getColumn('C');
 

выдает ошибку

Цитата:
 
Fatal error: Call to undefined method PHPExcel_Worksheet::getActiveSheet() in Z:\home\eximtrans\www\manager\includes\document.parser.class.inc.php(977) : eval()'d code on line 129
 

Что делать не знаю ( Гугл не помог

----------
Абонентское обслуживание и ремонт компьютеров в Днепропетровске

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 11:30 20-08-2013
mishakor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сдаётся мне у вас не тут ошибка.
 
Сам фильтр определили?
Настройки фильтра указали?

Всего записей: 65 | Зарегистр. 29-09-2008 | Отправлено: 12:54 20-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Call to undefined method PHPExcel_Worksheet::getActiveSheet()  

все же сказано.. что у статического класса  PHPExcel_Worksheet нет метода getActiveSheet

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:55 20-08-2013
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Решил проблему так

Код:
 
$aSheet->setAutoFilter("A1:M2");
 

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 22:48 20-08-2013
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А вот еще вопрос, с которым уже неделю мучаюсь
Когда выгружаю Excel, то мне браузер, не важно какой, предлагает открыть как HTML страницу, т.е. он не ассоциирует xls как Excel.

Код:
 
Формирую excel файл
.......
 
include("PHPExcel/Writer/Excel5.php");
$objWriter = new PHPExcel_Writer_Excel5($pExcel);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="exim.xls"');
header('Cache-Control: max-age=0');
 
$objWriter->save('php://output');
 

Пробовал менять заголовки (application/vnd.ms-exce), ничего не помогает
Как заставить браузер видеть что это excel.
 
Причем открываю с других сайтов Excel файл, и браузер понимает нормально как эксель, т.е. бок где то с кодом (((

----------
Абонентское обслуживание и ремонт компьютеров в Днепропетровске

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 23:34 11-09-2013 | Исправлено: DarkSmoke, 23:34 11-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
(application/vnd.ms-exce), ничего не помогает

смотрите заголовки сервера, есть ли там нужный content-type

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:21 12-09-2013
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
http://eximtrans.info/slezhenie/eksport-v-excel.html
 
Вроде есть все что надо а он в хтмл предлагает (

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 19:28 12-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkSmoke

Цитата:
Вроде есть все что надо а он в хтмл предлагает

где "есть"?
 

Цитата:
Content-Disposition:attachment;filename="exim.xls"
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8

это ответ сервера.
 
ps: у вас кэширующий фронтенд стоит

Цитата:
Server:nginx admin



----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:17 12-09-2013 | Исправлено: Cheery, 20:18 12-09-2013
DarkSmoke



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сделал так

Код:
header('Accept-Ranges: bytes');
header("Connection: close", true);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=exim.xls');
header('Cache-Control: max-age=0');

Не понятно почему первые два зоголовка не появляются и контент тайп другой, а не тот который я указал (

Всего записей: 962 | Зарегистр. 08-10-2005 | Отправлено: 11:03 14-09-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не понятно почему первые два зоголовка не появляются и контент тайп другой, а не тот который я указал

я же написал - у вас, по видимому, стоит кэширующий фронтенд (nginx), вот он, возможно, и меняет заголовки.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:22 14-09-2013
phantom12345

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Хочу заполнять шаблон .xls данными. Есть следующий код:
 

Код:
<?php
// Создаем СОМ-объект
$excel = new COM("Excel.Application") or die("Unable to instanciate excel");
$excel->Visible = false;
$excel->DisplayAlerts = false;
// Выводим версию MS Excel
echo "I'm using MS Excel {$excel->Version}";
$excel->Application->Visible = 0;
$excel->DisplayAlerts = 0;
# Открытие сущуствующей проформы
$excel->Workbooks->Open("c:\\temp\\example.xls");
// Выбираем активный лист и устанавливаем курсор в область ячейки (1, 1)
$sheet = $excel->Worksheets(1);
$sheet->activate;
$cell = $sheet->Cells(1,1);
$cell->Activate;
// Записываем в ячейку текст или данные
$cell->value = 'Test';
// Сохраняем как новый документ
$excel->Workbooks[1]->SaveAs("c:\\temp\\New.xls");
// Всё - уходим
$excel->Quit();
$excel->Release();
$excel = Null;
?>

 
И есть два компа: рабочий (win7 apache php fcgid) и домашний (то же, только без fcgid).
На первом браузер выдает:

Цитата:
I'm using MS Excel 14.0
Fatal error: in C:\Apache24\htdocs\xls\xls.php on line 11

а в логах апача:

Цитата:
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: PHP Fatal error:  Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Excel<br/><b>Description:</b> \xcf\xf0\xe8\xeb\xee\xe6\xe5\xed\xe8\xfe Microsoft Excel \xed\xe5 \xf3\xe4\xe0\xe5\xf2\xf1\xff \xef\xee\xeb\xf3\xf7\xe8\xf2\xfc \xe4\xee\xf1\xf2\xf3\xef \xea \xf4\xe0\xe9\xeb\xf3 "c:\\temp\\example.xls". \xdd\xf2\xee \xec\xee\xe6\xe5\xf2 \xe1\xfb\xf2\xfc \xe2\xfb\xe7\xe2\xe0\xed\xee \xee\xe4\xed\xee\xe9 \xe8\xe7 \xf1\xeb\xe5\xe4\xf3\xfe\xf9\xe8\xf5 \xef\xf0\xe8\xf7\xe8\xed.
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: \x95 \xd3\xea\xe0\xe7\xe0\xed \xed\xe5\xf1\xf3\xf9\xe5\xf1\xf2\xe2\xf3\xfe\xf9\xe8\xe9 \xf4\xe0\xe9\xeb \xe8\xeb\xe8 \xef\xf3\xf2\xfc.
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: \x95 \xd4\xe0\xe9\xeb \xe8\xf1\xef\xee\xeb\xfc\xe7\xf3\xe5\xf2\xf1\xff \xe4\xf0\xf3\xe3\xee\xe9 \xef\xf0\xee\xe3\xf0\xe0\xec\xec\xee\xe9.
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: \x95 \xc8\xec\xff \xea\xed\xe8\xe3\xe8, \xea\xee\xf2\xee\xf0\xf3\xfe \xe2\xfb \xef\xfb\xf2\xe0\xe5\xf2\xe5\xf1\xfc \xf1\xee\xf5\xf0\xe0\xed\xe8\xf2\xfc, \xf1\xee\xe2\xef\xe0\xe4\xe0\xe5\xf2 \xf1 \xe8\xec\xe5\xed\xe5\xec \xe4\xf0\xf3\xe3\xee\xe9 \xea\xed\xe8\xe3\xe8, \xee\xf2\xea\xf0\xfb\xf2\xee\xe9 \xe2 \xe4\xe0\xed\xed\xfb\xe9 \xec\xee\xec\xe5\xed\xf2.' in C:\\Apache24\\htdocs\\xls\\xls.php:11
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: Stack trace:
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: #0 C:\\Apache24\\htdocs\\xls\\xls.php(11): variant->Open('c:\\\\temp\\\\example...')
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr: #1 {main}
[Fri Feb 26 16:17:37.589089 2016] [fcgid:warn] [pid 4424:tid 760] [client 10.104.5.5:60579] mod_fcgid: stderr:   thrown in C:\\Apache24\\htdocs\\xls\\xls.php on line 11

Файл New.xls не создается.
 
А на втором браузер выдает:

Цитата:
I'm using MS Excel 14.0
Fatal error: in C:\Apache24\htdocs\xls\xls.php on line 23

а в логах апача:

Цитата:
[Sun Feb 28 12:51:24.346995 2016] [:error] [pid 2260:tid 796] [client ::1:50048] PHP Fatal error:  Uncaught exception 'com_exception' with message 'Error [0x80020003] \xd7\xeb\xe5\xed \xe3\xf0\xf3\xef\xef\xfb \xed\xe5 \xed\xe0\xe9\xe4\xe5\xed.\r\n' in C:\\Apache24\\htdocs\\xls\\xls.php:23\nStack trace:\n#0 C:\\Apache24\\htdocs\\xls\\xls.php(23): com->Release()\n#1 {main}\n  thrown in C:\\Apache24\\htdocs\\xls\\xls.php on line 23

При этом файл New.xls создается с заполненной ячейкой.
 
Помогите разобраться что за ошибки и как от них избавиться!

Всего записей: 14 | Зарегистр. 23-02-2015 | Отправлено: 13:28 28-02-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHPExcel


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru