Я использую laravel, и мне нужно преобразовать мой массив в строку, чтобы я мог добавить его в проверку phpSpreadsheet. Так что, когда я загружаю электронную таблицу Excel, я могу выбрать список продуктов. Проблема, с которой я столкнулся, заключается в том, что я не могу добиться нужного формата. Вот документация PhpSpreadsheet
Правильный формат
$validation->setFormula1('"Item A,Item B,Item C"');
Вот мой код
public function generate()
{
$this->spreadsheet = new Spreadsheet;
$validation = $this->spreadsheet->getActiveSheet()->getCell('B5')->getDataValidation();
$validation->setType( DataValidation::TYPE_LIST );
$validation->setErrorStyle( DataValidation::STYLE_INFORMATION );
$validation->setAllowBlank(false);
$validation->setShowInputMessage(true);
$validation->setShowErrorMessage(true);
$validation->setShowDropDown(true);
$validation->setErrorTitle('Input error');
$validation->setError('Value is not in list.');
$validation->setPromptTitle('Pick from list');
$validation->setPrompt('Please pick a value from the drop-down list.');
$products = Product::all();
$product_list = [];
foreach($products as $product)
{
$product_name = $product->name;
array_push($product_list, $product_name);
}
$validation->setFormula1($product_list);
}
Я пробовал json_encode()
, но похоже, что excel это не нравится.