0
我有一個下拉列表,我想從php中填充excel。我測試過我的腳本調用數組$sql_temp = "SELECT tempID FROM temp_sensor_specs WHERE statusTYPE ='SPARE'";
PHPExcel只在下拉列表中填充數組的第一個值
INSERT INTO `temp_sensor_specs` (`tempId`) VALUES
('T001'),
('T005'),
('T006'),
('T011'),
('T012'),
('T015'),
('T017'),
('T023'),
('T028'),
('T029'),
('T030'),
然後我崩盤的陣列,使之成爲字符串$templistimp = implode (", ", $row_temp);
我也去掉了brakets希望會有所幫助,它沒有。 Ø我的下拉是這樣的:
我想看起來更像它的HTML兄弟,看起來像這樣:
這裏是我使用的代碼:
$sql_temp = "SELECT `tempID` FROM `temp_sensor_specs` WHERE `statusTYPE`='SPARE'";
$result_temp = mysqli_query($link, $sql_temp);
$row_temp = mysqli_fetch_array($result_temp,MYSQLI_NUM);
$templistimp = implode (", ", $row_temp);
$templist = str_replace(array('(', ')'), '', $templistimp);
//Data Validation list
$objValidation = $objPHPExcel->getActiveSheet()->getCell('B4')->getDataValidation();
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_LIST);
$objValidation->setErrorStyle(PHPExcel_Cell_DataValidation::STYLE_INFORMATION);
$objValidation->setAllowBlank(true);
$objValidation->setShowDropDown(true);
$objValidation->setErrorTitle('Input error');
$objValidation->setError('Value is not in list');
$objValidation->setFormula1('"'.$templist.'"');
嗨@Mark Baker我開始嘗試按照你的建議去做。但正如你所建議的,我只是從第一行開始閱讀。請問你是如何得出這個結論的?以及我應該檢查哪些參數以獲取所有值。這個數組的代碼在網頁上運行良好,但由於某種原因,不太適用於Excel。 – brettg
我如何得出結論:您只是從數據庫結果中讀取第一行? 'mysqli_fetch_array()'只會從您的查詢結果集中獲取單個結果;您需要依次循環讀取每條記錄,構建您的數組 –
感謝Mark,對不起,我應該在第一個mysqli_fetch語句上做更多的閱讀。我結束了使用mysqli_fetch_all()。一切工作正常,獎金$ objValidation-> setFormula1('DropdownSheet!$ A $ 3:$ A $ 200');將不會返回任何空值。你的耐心非常感謝。 – brettg