2014-01-14 11 views
2

Я совершенно новый для PHPExcel. То, что я хочу сделать, это прочитать некоторые ячейки из таблицы Excel ниже приведен пример таблицы, с выделенной секции, изображающий часть читать excel spreadsheet exampleЧтение значений из определенного диапазона ячеек с использованием phpexcel

Я уже сделал некоторые необходимые инициализации:

$objPHPExcel = PHPExcel_IOFactory::load($filename); 

Любые предложения были бы полезными, спасибо.

+0

Что вы пробовали так далеко от загрузки файла? Во всяком случае, я не уверен, есть ли функция комфорта phpexcel для чтения всей области; возможно, вы можете пройти через файл и прочитать значение каждой ячейки, вот основная идея. – briosheje

ответ

2

Я получил работу для проблемы, которая работает ...

$objReader = new PHPExcel_Reader_Excel2007(); 
     $objReader->setReadDataOnly(true); 
     $objPHPExcel = $objReader->load($filename); // load filename into PHPExcel object 
     $objPHPExcel->setActiveSheetIndexByName('CA1'); 
     $objWorksheet = $objPHPExcel->getActiveSheet(); 

     $row_index = $objWorksheet->getHighestRow(); // e.g. 5 
     $col_name = $objWorksheet->getHighestColumn(); // e.g. B 
     $col_index = PHPExcel_Cell::columnIndexFromString($col_name); // e.g. 1 (which is equivalent to B) 


     for($row =4; $row <= $row_index; $row++){     
      for($col=1; $col<=$col_index; $col++){ 
       echo $objWorksheet->getCellByColumnAndRow($col, $row)->getValue().' '; 
      } 
      echo '<br>'; 
     } 
2

Вы можете использовать rangeToArray рабочий лист (в) способ передать содержимое диапазона ячеек в массив PHP:

$myDataArray = $objPHPExcel->getActiveSheet()->rangeToArray('B4:N7', NULL, True, True); 

Аргументы метода являются:

* @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") 
* @param mixed $nullValue Value returned in the array entry if a cell doesn't exist 
* @param boolean $calculateFormulas Should formulas be calculated? 
* @param boolean $formatData Should formatting be applied to cell values? 
* @param boolean $returnCellRef False - Return a simple array of rows and columns 
*          indexed by number counting from zero 
*        True - Return rows and columns indexed by their 
*          actual row and column IDs 
+0

Спасибо, этот метод также крут. Я сделал обходное решение, прежде чем увидеть этот пост. Но для моей проблемы столбцы являются динамическими, т. Е. Не могут заканчиваться на «N7». – osagie

+0

Если столбцы являются динамическими, вы разрабатываете диапазон и строят строку типа ''B4: N7'' –

+0

В любом случае, * без ** загрузки файла? Couse, когда я загружаю файл, выдает проблему «Разрешенная память». – AleOtero93

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