PHPExcel 如何使用 setFormula1() 将工作表列链接到单元格


PHPExcel how to link a sheet column to a cell using setFormula1()

我正在使用PHPExcel创建xls。 如何将工作表列链接到下拉单元格。 我已经在 XLS 中创建了一个下拉列表,但是我怎样才能在下拉列表中获得像整个 A 列这样的工作表列作为下拉值。在 excel 中,当我将工作表列链接到其制作公式的任何单元格时,我已经手动完成了此操作,如下所示

=下拉表!$A:$A

DropdonSheet是一个工作表名称A是我正在链接的列

当我在 PHPExcel 中编写此公式以填充下拉列表时,我已经使用 PHPExcel 构建了一个工作表,我在 excel DropdonSheet 中完全完成了

$objValidation->setFormula1("=DropdownSheet!$A:$A");

它不起作用给我一个错误。 我做错了什么,任何人都可以指导我这是我的整个代码

    $objPHPExcel = new PHPExcel();
// Create a first sheet, representing sales data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Something');
$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Something');
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('DropdownSheet');
// Create a new worksheet, after the default sheet
$objPHPExcel->createSheet();
// Add some data to the second sheet, resembling some different data types
$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'More data');
$objValidation = $objPHPExcel->getActiveSheet()->getCell("B1")->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("=DropdownSheet!$A:$A");
// Rename 2nd sheet
$objPHPExcel->getActiveSheet()->setTitle('Second sheet');

这是在 PHPExcel 中编写此公式的方法

 $objValidation->setFormula1('DropdownSheet!$A$2:$A$6');
// Make sure NOT to put a range of cells or a formula between " and "  !!!

下拉列表工作表是一个工作表名称

A 是列

我发现这个解决方案并且它工作正常,将来可以帮助任何人,这里是更多详细信息的链接链接