【问题标题】:PHP spreadsheet dropdownlistPHP 电子表格下拉列表
【发布时间】:2021-08-27 09:17:46
【问题描述】:

我想知道是否可以在 phpspreadsheet 中映射下拉列表,在下拉列表值形式范围单元格中显示,但是当用户选择显示第二列中的值时。 像 : 我选择 ine 下拉列表:AAA,当我选择:工作表显示 111。 因为我有 A1 = AAA 和 B1 = 111

感谢您的帮助。

【问题讨论】:

  • 阅读以下内容:stackoverflow.com/help/how-to-ask
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 好的,如果我不够清楚,抱歉。我用 phpspreadsheet 生成了两个工作表。第一个,它是一个简单的工作表,第二个是一个包含两列 (ID -NAME) 的列表。 I try to make a ddropdownlist in the first sheet , where I choose NAME of the second sheet, and when the choice it's ok, the sheet show the ID .第二张表没关系,我用我的数据库生成列表。下拉列表也可以,我尝试了 VLOOKUP ,但不起作用

标签: php excel spreadsheet phpspreadsheet


【解决方案1】:
$i = 3;
foreach($providersList as $provider) {
    $sheet->setCellValue('A'.$i, $provider['id']);
    $sheet->setCellValue('B'.$i, $provider['Name']);
    $i++;
}
$sheet->getProtection()->setSheet(true);
$nbOfProvider = $sheet->getHighestRow('A');
for($j = 3; $j < $nbOfProvider; $j++) {
    $dropdownlist = $worksheet->getCell('B'.$j)->getDataValidation();
    $dropdownlist->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST)    
                 ->setAllowBlank(true)
                 ->setShowDropDown(true)
                 ->setPrompt('Choose the provider')
                 ->setFormula1('=\'PROVIDERS\'!$B$3:$B$'.$nbOfProvider);
    $idProvider = $worksheet->getCell('C'. $j);
    /*$idProvider->setValue('=VLOOKUP(\'PROVIDERS\'!$B$3:$B$'.$nbOfProvider.',B');*/
}
$spreadsheet->getSheet(0);
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save($file);
return $file;

【讨论】:

    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2014-10-24
    • 2015-11-19
    相关资源
    最近更新 更多