mysqli — как экспортировать таблицу базы данных в 3 вкладки для Excel Переполнение стека

У меня есть кнопка на моей странице, которая экспортирует таблицу из базы данных, чтобы преуспеть в трех группах. Работает отлично. Я хочу, чтобы каждая группа экспортировалась в отдельную вкладку.

Вот мой код:
// экспорт

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=feis_history.csv');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');

$output = fopen("php://output", "w");

//GRADES
fputcsv($output, array('GRADES'));
fputcsv($output, array('First Name', 'Competition Level', 'Competition Name', 'Date', 'Dance Name', 'Competition Number','Number of Competitors', 'Dancer`s Placement', 'Dancer`s Score', 'judge 1 comments', 'notes'));

$sql = "SELECT `dancer_name`, `competition_level1`, `feis_entered`, `date`, `dance_name1`, `competition_number1`, `number_competitors1`, `dancer_placement1`, `dancer_score1`, `judge_comment1`, `notes`  FROM `mark_cards1` WHERE user_id = '$id' AND grades = 'yes' ORDER BY YEAR(date) ASC, dancer_name, feis_entered";
$res = mysqli_query($con,$sql);

while($row = mysqli_fetch_assoc($res))
{
fputcsv($output, $row );
}

//CHAMPION
fputcsv($output, array('CHAMPION'));
fputcsv($output, array('First Name', 'Competition Level', 'Competition Name', 'Date', 'Dance Name', 'Competition Number','Number of Competitors', 'Dancer`s Placement', 'Was Recalled?', 'Recalled Dancers', 'Dancer`s Score', 'judge 1 comments', 'judge 2 comments', 'judge 3 comments', 'notes'));

$sql = "SELECT `dancer_name`, `competition_level1`, `feis_entered`, `date`, `dance_name1`, `competition_number1`, `number_competitors1`, `dancer_placement1`, `was_recalled`, `recall1`, `dancer_score1`, `judge_comment1`, `judge_comment2`, `judge_comment3`, `notes`  FROM `mark_cards1` WHERE user_id = '$id' AND champion = 'yes' ORDER BY YEAR(date) ASC, dancer_name, feis_entered";
$res = mysqli_query($con,$sql);

while($row = mysqli_fetch_assoc($res))
{
fputcsv($output, $row );
}

//MAJOR
fputcsv($output, array('MAJOR'));
fputcsv($output, array('First Name', 'Competition Level', 'Competition Name', 'Date', 'Dance Name', 'Competition Number','Number of Competitors', 'Dancer`s Placement', 'Was Recalled?', 'Recalled Dancers', 'Dancer`s Score', 'judge 1 Score', 'judge 2 Score', 'judge 3 Score', 'judge 4 Score', 'judge 5 Score', 'notes'));

$sql = "SELECT `dancer_name`, `competition_level1`, `feis_entered`, `date`, `dance_name1`, `competition_number1`, `number_competitors1`, `dancer_placement1`, `was_recalled`, `recall1`, `dancer_score1`, `judge1_score`, `judge2_score`, `judge3_score`, `judge4_score`, `judge5_score`, `notes`  FROM `mark_cards1` WHERE user_id = '$id' ORDER BY YEAR(date) ASC, dancer_name, feis_entered";
$res = mysqli_query($con,$sql);

while($row = mysqli_fetch_assoc($res))
{
fputcsv($output, $row;
}

fclose($output);
?>

Так что я хочу, чтобы оценки находились на вкладке «Оценки», «Чемпион» на вкладке «Чемпион» и «Основные» на вкладке «Основные».

0

Решение

CSV (Сomma-Separated Вalues) файлы не содержат «вкладок», как вы видите в Excel:

Вот как выглядит CSV-файл:

id,name,active
1,jack,0
2,peter,1
3,luke,1

Это текстовый файл с отдельными элементами, разделенными запятыми (,) и новые записи в новых строках.

Там нет модных вкладок. Решение может быть для вас иметь отдельные файлы для каждого элемента, а затем, индивидуально сохранить их в свои выделенные файлы (grades.csv, champion.csv и т. Д.).

Или, как было предложено использовать выделенную библиотеку для управления офисными файлами, это были бы два лучших решения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector