2017-08-23 8 views
0

PHPExcelを使用してExcelファイルを作成しようとしています。ユーザーが国を選択して他のデータと一緒にアップロードできるように、国のドロップダウンを1つの列に表示します。国名一覧をプルダウンで表示するPHPExcel

$objValidation = $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getDataValidation(); 
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_LIST); 
$objValidation->setFormula1('"male,female"'); 

に従いますが、それは私は考え256文字の制限があり、国のリストは、確かにこの制限よりも大きいよう

今すぐExcelファイルのドロップダウンを作成するために、我々は、データの検証を使用することができます。 Excelファイルを作成すると、上記のようなドロップダウンが表示されますが、私の国のドロップダウンには空のドロップダウンが表示されます。

は、私もまた、これらの1

$objValidation->setFormula1('=countries'); 

$objValidation->setFormula1('countries!A1:A'.($counter-1)); 

しようとしました

$objPHPExcel->addNamedRange( 
new PHPExcel_NamedRange(
    'countries', 
    $objPHPExcel->getSheet(1), 
    'A1:A'.($counter-1), 
    false, 
    NULL 
) 
); 

$objValidation->setFormula1('countries'); 

名前付き範囲で試してみました。しかし、それはまた、同じ結果を示しています。だから私は何かが欠けている。

答えて

1
$objValidation->setFormula1('worksheetName!$A$1:$A$3'); 

大陸および国を使用して名前付き範囲を使用して、この実施例は、file 39dropdown.php in the Examples folderであるべきであるようPHPExcel Docsに記載され、実施例で実証されるように、動作15datavalidation.phpExamplesフォルダ

15datavalidation-xls.phpべきはリンクドロップダウンがExcel5ライターでは動作しませんが

$objPHPExcel->addNamedRange(
    new PHPExcel_NamedRange(
     'Continents', 
     $objPHPExcel->getActiveSheet(), $continentColumn . '1:' . $continentColumn . ($key+1) 
    ) 
); 


$objValidation = $objPHPExcel->getActiveSheet() 
    ->getCell('B1') 
    ->getDataValidation(); 
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_LIST) 
    ->setErrorStyle(PHPExcel_Cell_DataValidation::STYLE_INFORMATION) 
    ->setAllowBlank(false) 
    ->setShowInputMessage(true) 
    ->setShowErrorMessage(true) 
    ->setShowDropDown(true) 
    ->setErrorTitle('Input error') 
    ->setError('Continent is not in the list.') 
    ->setPromptTitle('Pick from the list') 
    ->setPrompt('Please pick a continent from the drop-down list.') 
    ->setFormula1('=Continents'); 

これらの例のすべてが(問題なく動作します。

私が提案できるのは、式の正しいワークシートで正しいセル範囲を参照していることを確認することです。

関連する問題