2016-04-26 47 views
1

嗨,大家好,我正在使用PHPExcel。我怎樣才能下拉單元鏈接到命名範圍列,它是在不同的片材預先我已發現,細胞這個下拉這樣PHPExcel如何使用setFormula1將命名範圍鏈接到單元格下拉菜單()

$objValidation->setFormula1('DropDownSheet!$A$1:$A$10'); 

DropDownSheet是一個表名稱。

但現在我有一個名爲範圍countries_list我想用setFormula1()下拉連結這個我怎麼能做到這一點,我已經嘗試了本

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

,但它不工作。

+0

嘗試刪除'=',並簡單地使用'$ objValidation-> setFormula1('countries_list');' –

+0

它不工作我試過.. – OBAID

回答

0

馬克貝克是正確的,這裏是我的代碼,工作正常...首先,在一個循環中,我設置了列表2列A中的國家...在一個循環重複$計數器:

$data_sheet = $objPHPExcel->createSheet(); 
$data_sheet->setTitle('Data'); 
$data_sheet->getCell('A'.$counter)->setValue($country["name"]); 

然後我命名的列 '國家':

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

然後我在完整的L列想要一個pulldow列表回表1(好,第1000行):

for($row = 2; $row<1002; $row++) { 
    $objValidation = $objPHPExcel->getActiveSheet()->getCell("L".$row)->getDataValidation(); 
    $objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_LIST); 
    $objValidation->setErrorStyle(PHPExcel_Cell_DataValidation::STYLE_INFORMATION); 
    $objValidation->setAllowBlank(false); 
    $objValidation->setShowInputMessage(true); 
    $objValidation->setShowErrorMessage(true); 
    $objValidation->setShowDropDown(true); 
    $objValidation->setErrorTitle('Input error'); 
    $objValidation->setError('Value is not in list.'); 
    $objValidation->setPromptTitle('Pick from list'); 
    $objValidation->setPrompt('Please pick a value from the drop-down list.'); 
    $objValidation->setFormula1('countries'); 
} 

最後一行命名我在前面的代碼塊中命名的列表。

相關問題