2016-06-01 8 views
0

1つの列にドロップダウン値があるExcelファイルがあります.PhpExcelを使用していますので、ドロップダウン値を読み取る必要があります。 iは
$ rowData = $シート状> rangeToArrayとしての行を読んでいPHPExcelを使用してExcelでダウンロード値を読み取る方法

( 'A' $列 ':'。。。$ highestColumn $行、NULL、TRUE、FALSE)。

私はちょうど私がドロップダウン値を必要とする行をダンプするときにテキストを取得します。

ご協力いただければ幸いです。

答えて

1

単純に選択した値ではなく、セルのドロップダウンから値をすべて取得する必要がある場合は、ドロップダウン自体を読む必要があります。これはデータ検証オブジェクトです。

$objValidation = $objPHPExcel->getActiveSheet() 
    ->getCell('B1') 
    ->getDataValidation(); 

あなたは、その後getType()getOperator()getFormula1()getFormula2()のようなメソッドを使用してそのデータ検証のためのルールを読むことができるデータの検証オブジェクトを返します。ドロップダウンがセルB1にあると仮定すると

....すべてのデータ検証がドロップダウンではないことに注意してください。ドロップダウンリストの種類はPHPExcel_Cell_DataValidation::TYPE_LISTです。また、計算エンジンを使用して、スプレッドシートの他の場所のデータから導出されたリストを作成するために使用された式を評価する必要があります。また


それはあなたの質問からははっきりしないので、それはあなたが約求めているオートフィルタのドロップダウンである可能性があります。

$autoFilter = $objPHPExcel->getActiveSheet() 
    ->getAutoFilter(); 

この場合も、各列のフィルタ規則にアクセスするための一連の方法があります。

$autoFilter->getColumn('C'); 

はそのオートフィルタのためのルールの定義を提供するgetFilterType()getRules()のような方法で、列Cためオートフィルタルールを返します。

10autofilter-selection-display.phpのようなオートフィルタの例では、自動フィルタの定義方法を示しています。便利なshowHideRows()メソッドもあります。これらのルールに一致する行を表示/非表示するフィルタを使用できます。

+0

返信ありがとうございますが、まだドロップダウンリストから値を抽出できません。getOperator()、getFormula1 ()、getFormula2()、getShowDropDown()などはありませんが、これはすべて私が必要とするデータに焦点を当てているわけではありません。 – jision

+0

あなたが読もうとしているオートフィルターだとしますが(それでもそれは明らかになっていません)、MS Excelはそれを提供していないのは残念です。現在適用されているフィルタ.... showHideRulesを使用してフィルタを適用する場合は、行が隠されているかどうかを調べ、その情報を使用して値のリストを作成できます –

関連する問題