答案 0 :(得分:0)
马克·贝克是正确的,这里我的代码工作正常...首先,在一个循环中,我在第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');
}
最后一行命名我在前一个代码块中命名的列表。