2016-10-06 2 views
1

Использования PHPExcel создать выпадающий список следующим образом:Как увеличить лимит ячейки символов PHPExcel TYPE LIST

$objValidation = $objPHPExcel->getActiveSheet()->getCell("A".$i)->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.'); 
$formulaString = '"' . implode(", ", $items_array) . '"'; 
$objValidation->setFormula1($formulaString); 

$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel); 
$filename = "MyExcel.xlsx"; 
header('Content-Type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment;filename="'.$filename.'"'); 
header('Cache-Control: max-age=0'); 
$objWriter->save('php://output'); 

Проблема заключается в том, что отсекает на 1023 символов, следовательно, нарушающих функцию «Раскрывающейся».

Как увеличить лимит символов?

+0

вы проверили, является ли предел налагаемые PHPExcel или, если это ограничение накладывается на формат и/или Microsoft Excel? – Phylogenesis

+0

@Phylogenesis Я обновил сообщение с кодом, где я создаю файл, у меня есть чувство, что оно связано с заголовками. – ImpendingDoom

+1

Пробуя это с помощью самого Excel 2007, кажется, что ввести более 256 символов невозможно. Вы думали об использовании другого листа и использовании диапазона ячеек для проверки вашей ячейки? – Phylogenesis

ответ

1

Как указано в комментариях, существует ограничение на длину статического списка при проверке данных.

Вы должны поместить данные проверки в диапазоне, в книге где-то и обеспечивают этот диапазон для проверки:

// Get options from another sheet 
$objvalidation->setFormula1('ExampleSheet!A1:A100'); 
Смежные вопросы