Mark Bakerは正しいですが、ここで私のコードはうまくいきます...まずループ内で、シート2のA列に国のリストを設定します... $ counterを繰り返したループ内で:
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');
}
:
$objPHPExcel->addNamedRange(
new PHPExcel_NamedRange(
'countries',
$objPHPExcel->getSheet(1),
'A1:A'.($counter-1),
false,
NULL
)
);
それから私は(まあ、最初の1000行の)全体のL列にバックシート1上pulldowリストを望んでいた:
$data_sheet = $objPHPExcel->createSheet();
$data_sheet->setTitle('Data');
$data_sheet->getCell('A'.$counter)->setValue($country["name"]);
は、それから私は、その列 '国が' という名前
前のコードブロックで指定したリストの最後の行の名前です。
'='を落として、単に$ objValidation-> setFormula1( 'Countries_list'); ' –
を使ってみてください。 – OBAID