Я пытаюсь получить данные MySQL в файл Excel в виде выпадающего списка, но у меня проблемы с ограничением строки.Файл Excel будет поврежден, если ограничение строки превысит 255. Вот мой код:
foreach ($sequence as $sequence_no) {
if ($pattern_record['attribute_' . $sequence_no . '_name'] != "") {
$cell = $objWorkSheet->getCell($column . $row);
$cell->setValue($pattern_record['attribute_' . $sequence_no . '_name']);
if (!empty($pattern_record['attribute_' . $sequence_no . '_variable_value'])) {
for ($j = 2; $j <= $no_emp; $j++) {
$excel->setActiveSheetIndex(0);
$excel->getActiveSheet()
->setCellValue($column . "" . $j, "");
$configs = $pattern_record['attribute_' . $sequence_no . '_variable_value'];
$objValidation = $excel->getActiveSheet()->getCell($column . $j)->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('"' . $configs . '"');
}
}
//check and set datatype in excel
//General format
else if (in_array($sequence_no, $datatype_varchar)) {
$excel->getActiveSheet()->getStyle($column)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
} else if (in_array($sequence_no, $datatype_text)) {
//text format
$excel->getActiveSheet()->getStyle($column)
->getNumberFormat()
->setFormatCode(
'0'
);
} else if (in_array($sequence_no, $datatype_int)) {
// numerical format
$excel->getActiveSheet()->getStyle($column)
->getNumberFormat()
->setFormatCode(
'0'
);
} else if (in_array($sequence_no, $datatype_date)) {
// date format
$excel->getActiveSheet()->getStyle($column)->getNumberFormat()
->setFormatCode('yyyy-mm-dd');
}
$excel->getActiveSheet()->getStyle("$column$row:$column$row")->getFont()->setSize(14);
$excel->getActiveSheet()->getStyle("$column:$column")->getFont()->setSize(12);
$excel->getActiveSheet()
->getColumnDimension($column)
->setAutoSize(true);
$excel->getActiveSheet()->getStyle($column . $row . ':' . $column . $row)->getFill()
->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
->getStartColor()->setARGB('FFE8E5E5');
$col++;
$column++;
} }
Он загружается правильно, если данные имеют длину 255, но будет поврежден, если он превышен.Пожалуйста, предложите что-нибудь.