如何在下拉列表值中添加逗号?

时间:2015-10-21 14:31:34

标签: php excel phpexcel

我尝试使用PHPExcel(v1.7.9)构建下拉列表,但使用逗号的值未正确导出

例如:如果我想导出这两个值:“12”和“5,9”,我想要的下拉列表是:

12
5,9

但我获得了这个:

12
5
9

我在网上找不到这个问题的答案。

有你的想法吗?

$objValidation = $excel->getActiveSheet()->getCell($nextLetter . $beginLine)->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('Erreur');
$objValidation->setError('Cette valeur n\'est pas dans la liste');
$objValidation->setPromptTitle('Sélectionner la valeur :');
$objValidation->setPrompt('Merci de choisir une valeur dans la liste :');
$objValidation->setFormula1(/*????*/);

2 个答案:

答案 0 :(得分:0)

一种解决方案是让一系列单元格包含可能的值,并将公式设置为该范围:

// Set cells containing our possible list values
$objValidation = $objPHPExcel->getActiveSheet()
    ->setCellValueExplicit('A1', "12");
$objValidation = $objPHPExcel->getActiveSheet()
    ->setCellValueExplicit('A2', "9,5");

// Set the data validation list
$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('Erreur');
$objValidation->setError('Cette valeur n\'est pas dans la liste');
$objValidation->setPromptTitle('Sélectionner la valeur :');
$objValidation->setPrompt('Merci de choisir une valeur dans la liste :');
// Set the formula to the range of cells containing the list values
$objValidation->setFormula1('=A1:A2');

另一种选择是使用U-FF0C

在9和5之间使用Unicode full width comma

答案 1 :(得分:-1)

一个快速谷歌和我发现了这个。

$objValidation->setFormula1('"12,9,5"');

因此,您似乎必须将逗号分隔列表放在字符串文字中,该字符串文字包含在字符串文字中,即包含在PHP字符串文字中的Excel字符串文字。

或者这也可能起作用

$list = '"12,9,5"';
$objValidation->setFormula1($list);