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

PHPExcel如何使用setFormula1()将命名范围链接到单元格下拉列表,php,phpexcel,Php,Phpexcel,嗨,伙计们,我在用PHPExcel。如何将下拉单元格链接到不同工作表中的命名范围列之前,我已将单元格链接到该下拉列表,如下所示 $objValidation->setFormula1('DropDownSheet!$A$1:$A$10'); 下拉式工作表是工作表名称 但是现在我有了一个命名的国家/地区列表,我想使用setFormula1()将其与下拉列表链接起来,我已经尝试过了 $objValidation->setFormula1('=countries_list'); $obj

嗨,伙计们,我在用PHPExcel。如何将下拉单元格链接到不同工作表中的命名范围列之前,我已将单元格链接到该下拉列表,如下所示

$objValidation->setFormula1('DropDownSheet!$A$1:$A$10');
下拉式工作表是工作表名称

但是现在我有了一个命名的国家/地区列表,我想使用
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
    ) 
);
然后,我想在第1页的整个L列(好的,前1000行)中返回一个下拉列表:

for($row=2;$rowgetActiveSheet()->getCell(“L”。$row)->getDataValidation();
$objValidation->setType(phpexcell\u Cell\u DataValidation::TYPE\u LIST);
$objValidation->setErrorStyle(phpexcell\u Cell\u DataValidation::STYLE\u信息);
$objValidation->setAllowBlank(false);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle(“输入错误”);
$objValidation->setError('值不在列表中');
$objValidation->setpromptitle('Pick from list');
$objValidation->setPrompt('请从下拉列表中选择一个值');
$objValidation->setFormula1(“国家”);
}

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

Mark Baker是正确的,这是我的代码,运行良好…首先,在循环中,我在表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
    ) 
);
然后,我想在第1页的整个L列(好的,前1000行)中返回一个下拉列表:

for($row=2;$rowgetActiveSheet()->getCell(“L”。$row)->getDataValidation();
$objValidation->setType(phpexcell\u Cell\u DataValidation::TYPE\u LIST);
$objValidation->setErrorStyle(phpexcell\u Cell\u DataValidation::STYLE\u信息);
$objValidation->setAllowBlank(false);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle(“输入错误”);
$objValidation->setError('值不在列表中');
$objValidation->setpromptitle('Pick from list');
$objValidation->setPrompt('请从下拉列表中选择一个值');
$objValidation->setFormula1(“国家”);
}

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

尝试删除
=
并简单地使用
$objValidation->setFormula1('countries_list');
我尝试过它不工作。。尝试删除
=
并简单地使用
$objValidation->setFormula1('countries_list');
我尝试过它不工作。。