PHPExcel 如何使用 setFormula1() 将命名范围链接到单元格下拉列表


PHPExcel how to link a named range to a cell dropdown using setFormula1()

嗨,伙计们,我正在使用PHPExcel。 如何将下拉单元格链接到以前不同工作表中的命名范围列 我已经像这样将单元格链接到此下拉列表

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

下拉表是一个工作表名称。

但是现在我有一个命名范围countries_list我想使用 setFormula1() 将其与下拉列表链接,我该怎么做,我已经尝试过了

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

但它不起作用。

马克贝克是正确的,这是我的代码,工作正常......首先,在一个循环中,我在工作表 2 的 A 列中设置了一个国家/地区列表......在迭代$counter的循环中:

$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 列的工作表 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');
}

最后一行命名我在上一个代码块中命名的列表。