Экспорт данных MySQL в Excel в PHP с отдельными ячейками
Вы столкнулись с проблемой при экспорте данных MySQL в Excel, где весь текст отображается в одной ячейке вместо отдельных ячеек для каждого значения строки. Целью этой статьи является решение этой проблемы путем обращения к каждой строке вашего кода и рекомендации соответствующих изменений.
Строка 12: $count = mysql_num_fields($result);
Эта строка подсчитывает количество столбцов в наборе результатов и присваивает его переменной $count.
Строка 14: $header .= mysql_field_name($result, $i). "\t";
Эта строка добавляет имена столбцов к переменной $header, разделенные символами табуляции.
Строка 24: if(!isset($value) || $value == ""){ $value = "\t"; }
В этой строке, если значение ячейки пустое или неопределенное, оно заменяется табуляцией. Это гарантирует, что в каждой ячейке будет хотя бы пробел.
Строка 28: $data .= Trim($line)."\n";
Здесь обрезанная строка данных добавляется к переменной $data, разделенной символами новой строки.
Строка 38: header("Content-Disposition: Attachment; filename=exportfile.xls");
В этой строке заголовок настроен так, чтобы браузер загружал файл как документ Excel с именем Exportfile.xls.
Строка 52: $result = @mysql_query( $sql,$Connect) или die("Не удалось выполнить запрос:
". mysql_error(). "
" . mysql_errno());
Эта строка выполняет SQL-запрос и обрабатывает любые потенциальные ошибки.
Строка 63: header("Pragma: no-cache"); и header("Expires: 0");
Эти заголовки отключают кэширование, чтобы гарантировать загрузку последних данных при каждом запросе.
Строка 92: print Trim( $schema_insert);
В этой строке распечатываются обрезанные данные.
Расширенный код:
Вот расширенная версия вашего кода это должно решить проблему экспорта данных в отдельные ячейки Excel:
$DB_Server = "localhost";
$DB_Username = "username";
$DB_Password = "password";
$DB_DBName = "databasename";
$DB_TBLName = "tablename";
$filename = "excelfilename";
$sql = "Select * from $DB_TBLName";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
$count = mysql_num_fields($result);
for ($i = 0; $i
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3