Мне нужно экспортировать три таблицы в лист Excel, но все данные в значительной степени сбрасываются в одном поле, создавая большой беспорядок. Можно ли экспортировать содержимое трех таблиц и форматировать их в Excel через PHP? В принципе, чтобы я мог получить:Экспорт определенных таблиц mysql в excel в php
Date: Subject Participants
Start - End Subject Title User 1
User 2
User 3
В принципе, чтобы все было так? Сделать это ясным и видимым (хотя это может вызвать проблемы с большим количеством участников).
Кроме того, я поделюсь своим кодом, может быть, кто-то может увидеть, что я испортил на этот раз.
<div id="tableform">
<form method="post">
<table class="nostyle">
<tr>
<th><label for="startDate">Begin datum:</label></th>
<td><input type="date" id="BeginDate" name="BeginDate" placeholder="DD-MM-YYYY"></td>
<td><input type="hidden" id="startDate" name="startDate" value="<?= $startdate; ?>"/></td>
</tr>
<tr>
<th><label for="endDate">Eind datum:</label></th>
<td><input type="date" id="EindDate" name="EindDate" placeholder="DD-MM-YYYY"></td>
<td><input type="hidden" id="endDate" name="endDate" value="<?= $enddate; ?>"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="generate" value="Jaarverslag genereren"/></td>
</tr>
</table>
</form>
</div>
И функция:
<?php
public function generateReport($startDate = null, $endDate = null) {
if (empty($startDate) && empty($endDate)) {
$time = strtotime("-1 year", time());
$startDate = date("Y-m-d", $time);
$endDate = date("Y-m-d");
}
$this->generator->create('Jaaroverzicht-' . $startDate . '-' . $endDate);
$data = array(
"Datum" . '' . "Aanwezigen" . '' . "Bijscholing"
);
foreach ($this->dbSchooling->getYearReport($startDate, $endDate) as $row) {
$users = "";
$participants = $this->dbSchooling->getParticipants($row['bijscholing_id']);
foreach ($participants as $participant) {
$users .= $participant;
if ($participant == end($participants)) {
$users .= ', ';
}
}
$myDateTime = \DateTime::createFromFormat('Y-m-d', $row['bijscholing_begindatum']);
$newDateString = $myDateTime->format('d-m-Y');
array_push($data, ($newDateString . "." . $users . "." . '.' . $row['bijscholing_titel']));
}
foreach ($data as $line) {
$this->generator->store(explode('.', $line));
}
return $this->generator->close();
} ?>
Я не вижу ничего общего с преувеличением. Вы создаете csv, используя '.' в качестве разделителя? и если вы просто собираетесь взорваться на этом '.' потом в любом случае. зачем даже генерировать строку «dotsv» в первую очередь> просто поместите ваши поля в массив: '$ arr [] = array ($ newDateString, $ users и т. д.);' –
Можете ли вы дать образец как выглядят данные в начале? Жесткая работа, чтобы следовать вашему коду назад, чтобы увидеть, где мы на самом деле начинаем. Вы в настоящее время можете экспортировать данные в excel или это тоже то, что вам нужно от нас? – Philipp
"было бы возможно экспортировать содержимое трех таблиц И отформатировать их в excel через PHP« Нет, Excel - это программное обеспечение на клиенте - ваш компьютер. Вам нужно будет форматировать данные IN PHP и THEN экспортировать их в Excel или наоборот -> просто выбросить данные в excel и позволить вашему пользователю форматировать его на своем ПК, а затем загрузить его на ваш веб-сервер и делать все, что вы хотите – Philipp