Вот это раюотает при запуске на localhost
require_once 'Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("23.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{
//массив с нашими терминами
$termsArray=array();
$highestRow = $worksheet->getHighestRow(); // например, 10
$highestColumn = $worksheet->getHighestColumn(); // например, 'B'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$i=1;
for ($row = 1; $row <= $highestRow; ++ $row)
{
for ($col = 0; $col < $highestColumnIndex; ++ $col)
{
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
if($val==$i)
{
$cell = $worksheet->getCellByColumnAndRow($col+1, $row);
$val = $cell->getValue();
$termsArray[]=$val;
$i++;
}
}
}
echo '<br>';
print_r($termsArray);
echo '</br>';
}
?>
Вот эта функция в модуле не работает. Выдает ошибку из функции, содержащейся в phpExcel, которая вообще не вызывется в предыдущем варианте.
{
require_once 'Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("public://te.xlsx");
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{
//массив с тем что хочу извлечь
$termsArray=array();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$i=1;
//цикл по извлечению того что нужно
for ($row = 1; $row <= $highestRow; ++ $row)
{
for ($col = 0; $col < $highestColumnIndex; ++ $col)
{
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
if($val==$i)
{
$cell = $worksheet->getCellByColumnAndRow($col+1, $row);
$val = $cell->getValue();
$termsArray[]=$val;
$i++;
}
}
}
}
return $termsArray;
}
Комментарии
текст ошибки привести с первого раза не судьба?
<?php
require_once 'Classes/PHPExcel/IOFactory.php';?>
папка Classes - в корне сайта?
Ошибка - необъявленная переменная. Просто дело в том что эта функция при запуске из не под друпала, вообше не вызывается и не используется. Папка Classes рядом с файлом my_modyle.module
модуль
В require_once надо указывать путь к модулю (ф-ция drupal_get_path)
всмысле вместо require_once 'Classes/PHPExcel/IOFactory.php';
писать
$path = drupal_get_path('module', 'my_module').'Classes/PHPExcel/IOFactory.php';
require_once $path;
слэшик посерединке еще добавь.
Не не работает твой вариант.
Вот ошибка в моем варианте. Это даже не ошибка. Так-то кот отрабатывает, но результата нет. Я пробывал закоментить эту переменную, тогда вообще ошибок не было. Но результата тоже не было, не читался Excel.
Notice: Undefined variable: fileHandle in PHPExcel_Reader_CSV->_skipBOM() (line 147 of C:\wamp\www\pal\sites\all\modules\form_test\Classes\PHPExcel\Reader\CSV.php).
Warning: rewind() expects parameter 1 to be resource, null given in PHPExcel_Reader_CSV->_skipBOM() (line 147 of C:\wamp\www\pal\sites\all\modules\form_test\Classes\PHPExcel\Reader\CSV.php).
Если делать как предложили вы, то
Warning: require_once(sites/all/modules/my_module/Classes/PHPExcel/IOFactory.php): failed to open stream: No such file or directory in getTermsFromExcel() (line 58 of C:\wamp\www\pal\sites\all\modules\form_test\form_test.module).
Вообще не находит.
ну так у тебя модуль называется не my_module, а form_test
ну да, скопировал - забыл поменять) Теперь все так же, та же ошибка, результата нет.
Тут наверно надо понять почему лезет в тут функцию в которую не должен лезть
Notice: Undefined variable: fileHandle in PHPExcel_Reader_CSV->_skipBOM() (line 147 of C:\wamp\www\pal\sites\all\modules\form_test\Classes\PHPExcel\Reader\CSV.php).
Warning: rewind() expects parameter 1 to be resource, null given in PHPExcel_Reader_CSV->_skipBOM() (line 147 of C:\wamp\www\pal\sites\all\modules\form_test\Classes\PHPExcel\Reader\CSV.php).
все еще не пойму
Я пользуюсь PHPexcel через api - всё работает.
Рекомендую всё-таки придерживаться друпал-вея.
И в стандартах кодирования, кстати, тоже.