2011-08-12 15 views
2

PHPExcelのセルからデータを取得する方法を理解しようとしていますが、わかりません。私はすべてのドキュメントを読んで、私はこれを作った:PHPExcelリーダーからのデータの使い方

<?php 
include('PHPExcel/Classes/PHPExcel/Reader/Excel2007.php'); 
class MyReadFilter implements PHPExcel_Reader_IReadFilter 
{ 
    public function readCell($column, $row, $worksheetName = '') { 
     // Read title row and rows 20 - 30 
     if ($row == 1 || ($row >= 20 && $row <= 30)) { 
      return true; 
     } 

     return false; 
    } 
} 
$objReader = new PHPExcel_Reader_Excel2007(); 
$objReader->setReadFilter(new MyReadFilter()); 
$objReader->setReadDataOnly(true); 
$objPHPExcel = $objReader->load("sample_mymails222.xlsx"); 
print_r($objPHPExcel); 
?> 

print_r非常に大きな配列を表示する。 $ objPHPExcelにあるセルからデータを取得する関数がいくつかあると思います。

どうすればよいですか?

Thanx!

答えて

2

上記の例のコードは、次の(PHPExcelダウンロードパッケージに含まれる)のドキュメントの章4.5より有用な答えを望んでいる誰のために

+0

を使用することができます! – Mirgorod

25

を、お読みください、ここでアクティブを解析する迅速なスニペットがありますワークシートを多次元配列に変換します(この例では、OPが作成したReadFilterは無視されます)。

$data = array(); 
$worksheet = $objPHPExcel->getActiveSheet(); 
foreach ($worksheet->getRowIterator() as $row) { 
    $cellIterator = $row->getCellIterator(); 
    $cellIterator->setIterateOnlyExistingCells(false); 
    foreach ($cellIterator as $cell) { 
    $data[$cell->getRow()][$cell->getColumn()] = $cell->getValue(); 
    } 
} 
var_dump($data); 

ところで、私は「より有用な答えを」と言う理由は、私はまた、(6つの別の文書とは本当のAPIのようなリファレンスで構成)PHPExcelのドキュメント最初の頃を考え出す苦労したということです。

OPは彼は「すべてのドキュメントを読んで」と言うが、私は私のように、彼はPHPExcelのユーザーマニュアルと呼ばれるファイルを読み、推測しています - 、スプレッドシートに読み込む方法について説明します読んでスプレッドシートFiles.doc内容の使用は対象としません。

これを調べるには、PHPExcelの開発者用ドキュメント.docを読んで、パート4(ここでは上記の例がわかっています)にアクセスしてください。

ええ、徹底していない私のせいですが、明らかにこれは繰り返し問題です。 Excelのファイルを読み込むための:-)

+0

実用的なコード例のおかげで! –

+0

ディストリビューションの/ Documentation/APIディレクトリに完全なAPIリファレンスがあります...ディレクトリの名前にもかかわらず、どれくらい多くの人がその存在を完全に忘れているのですか? –

+0

@MarkBaker PHPExcelは優れています!私は何にも賛成できません!私はちょうどあなたがそれを行う必要はありません(と私は本当にそれを行う必要はありません知っている)sugestionを与えるだろうが、私は人々がそれが表示されている方法のPHPExcelのドキュメントを見つけることは簡単だとは思わないと思う。ユーザーガイドは、codeigniterに関するすべてを見つける素晴らしい、きれいで、簡単な場所の最高の参考文献の1つです。そこに情報を検索する方法、例などです。PHPExcelでは、検索を行うのが難しく、何も本当に困難です。ここで私の質問はほぼすべて、より良い検索を行う答えが見つかりました – Periback

3

あなたはどうもありがとうございました、ああこの

require_once('PHPExcel.php'); 
 
$input_file_type = PHPExcel_IOFactory::identify($excel_file); 
 
$obj_reader = PHPExcel_IOFactory::createReader($input_file_type); 
 
$obj_reader->setReadDataOnly(true); 
 
     
 
$objPHPExcel = $obj_reader->load($excel_file); 
 
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0); 
 
$highest_row = $objWorksheet->getHighestRow(); 
 
$highest_col = $objWorksheet->getHighestColumn(); 
 
//$highest_col_index = PHPExcel_Cell::columnIndexFromString($highest_col); 
 
     
 
// start $row from 2, if you want to skip header 
 
for ($counter = 2; $counter <= $highest_row; $counter++) 
 
{ 
 
    $row = $objWorksheet->rangeToArray('A'.$counter.':'.$highest_col.$counter); 
 
    $row = reset($row);    
 
}

+0

あなたがこれを投稿して以来、私はその時間が長いことを知っています。しかし、私はどんな助けも見つけることができません。 $行にデータを印刷するにはどうすればよいですか?私はいつも 'Undefined Offset'を取得します。あなたのコードを送ってください – PlayHardGoPro

+1

をしてください本当にあなたに答えるためにありがとう。私はちょうど問題を解決し、document.docをいくつかの説明とともに見つけました...ありがとうございました! <3 –

+0

いくつかのヘルプ= \ – PlayHardGoPro