嗨,伙计们,我正在使用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');
}
最后一行命名我在上一个代码块中命名的列表。