Я использую PHPExcel для загрузки некоторых данных, хранящихся в MySQLi. Я сделал алгоритм, который работает для каждой базы данных (теоретически). Я тестировал его с некоторыми из них, и он работал нормально.Селективная загрузка с PHPExcel
Я извлекал имена столбцов в массиве: column_names
, а затем добавляю заголовки и данные в отчет Excel.
// Adding titles
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1',$bigTitle);
$counter = 0;
$let = 'a';
while ($counter <= count($column_names)){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue(strtoupper($let).'3', $column_names[$counter]);
$let++;
$counter++;
}
//Adding data
$i = 4;
while ($row = $result->fetch_array()) {
$counter = 0;
$let = 'a';
while ($counter <= count($column_names)){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue(strtoupper($let).$i, $row[$column_names[$counter]]);
$let++;
$counter++;
}
$i++;
}
Я подключение к базе данных с использованием
$conexion = new mysqli('localhost','user','pass','SAT_dbname',21);
Я клонировал базу данных "SAT_db1" в "SAT_db2". Они имеют точно такую же структуру, но различную информацию. Загрузки работает, если я использую
$conexion = new mysqli('localhost','user','pass','SAT_db1',21);
Но это не работает, если я использую
$conexion = new mysqli('localhost','user','pass','SAT_db2',21);
Я не знаю, что это неправильно, если они одинаковые с разными именами. Разве PHPExcel не работает с клонированными базами данных? Что еще это может быть?
Ошибка отображается в браузере как "Файл не найден".
EDIT Я тестировал загрузку весь день, и, наконец, я нашел что-то: я могу скачать, когда у меня есть несколько регистров. Когда у меня есть еще несколько, я не могу.
Я посылаю файл в браузере:
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Report.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
До сих пор не найдено решение.
phpexcel не заботится о вашем дБ. он не знает, что такое db, и ему это не нужно. это ВАШ запрос/выбор кода, который обрабатывает часть db, а затем передает результаты на phpexcel. –
Вы проверяли наличие ошибок подключения к базе данных/запросов? ** Вы проверяете наличие ошибок подключения к базе данных/запросов? –
Я пытался проверить @SalmanA, но я не могу, потому что в браузере отображается только «Файл не найден», «Проверить на наличие ошибок»: / – Aleharu