exporteren naar excel werkt niet
ik ben bezig met een script die de inhoud van twee kolommen vanuit een database exporteert naar een excel sheet.
De twee kolommen worden niet geëxporteerd maar wel wat tussen de a element staat. Dus als je <li><a href="ledenlijst.php">Ledenlijst</a></li> hebt dan zie je het woord Ledenlijst in de excel sheet. En dan zo het hele menu.
Ook de naam van de knop waar je op drukt voor het exporteren naar excel zie je ook in de excel sheet, <input type="submit" name="exportToExcel" value="Export to Excel" />, dus exportToExcel staat in de excel sheet.
Verder krijg ik geen errors.
mijn vraag is: hoe kan ik dit oplossen? ik wil alleen de inhoud van twee kolommen naam en achternaam in de excel sheet hebben.
index.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('connect.php');
require_once('class_excel.php');
$database = new Database();
if (isset($_POST["exportToExcel"])) {
$excel = new ExportToExcel($database);
$excel->queryToExcel();
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dashboard</title>
<link href="style.css" type="text/css" rel="stylesheet">
<link href="style_menu.css" type="text/css" rel="stylesheet">
</head>
<body>
<nav>
<ul id="menu">
<li><a href="dashboard.php">Home</a></li>
<li>
<a href="#">Administratie</a>
<ul>
<li><a href="ledenlijst.php">Ledenlijst</a></li>
<li><a href="new_lid.php">Toevoegen nieuw lid</a></li>
<li><a href="edit_delete_lid.php">Wijzigen/verwijderen lid</a></li>
</ul>
</li>
<li><a href="#">Foto/video</a>
<ul>
<li><a href="foto.php">Alle fotos</a></li>
<li><a href="video.php">Alle videos</a></li>
<li><a href="add_foto.php">Toevoegen foto</a></li>
<li><a href="add_video.php">Toevoegen video</a></li>
<li><a href="delete_foto.php">Verwijderen foto</a></li>
<li><a href="delete_video.php">Verwijderen video</a></li>
</ul>
</li>
<li><a href="#">Notulen/agenda</a>
<ul>
<li><a href="agenda.php">Alle agendas</a></li>
<li><a href="notulen.php">Alle notulen</a></li>
<li><a href="add_agenda.php">Toevoegen agenda</a></li>
<li><a href="add_notulen.php">Toevoegen notulen</a></li>
<li><a href="delete_agenda.php">Verwijderen agenda</a></li>
<li><a href="delete_notulen.php">Verwijderen notulen</a></li>
</ul>
</li>
<li>
<form method="post" action="#" ><input type="submit" name="exportToExcel" value="Export to Excel" /></form>
</li>
</ul>
</nav>
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once('connect.php');
require_once('class_excel.php');
$database = new Database();
if (isset($_POST["exportToExcel"])) {
$excel = new ExportToExcel($database);
$excel->queryToExcel();
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dashboard</title>
<link href="style.css" type="text/css" rel="stylesheet">
<link href="style_menu.css" type="text/css" rel="stylesheet">
</head>
<body>
<nav>
<ul id="menu">
<li><a href="dashboard.php">Home</a></li>
<li>
<a href="#">Administratie</a>
<ul>
<li><a href="ledenlijst.php">Ledenlijst</a></li>
<li><a href="new_lid.php">Toevoegen nieuw lid</a></li>
<li><a href="edit_delete_lid.php">Wijzigen/verwijderen lid</a></li>
</ul>
</li>
<li><a href="#">Foto/video</a>
<ul>
<li><a href="foto.php">Alle fotos</a></li>
<li><a href="video.php">Alle videos</a></li>
<li><a href="add_foto.php">Toevoegen foto</a></li>
<li><a href="add_video.php">Toevoegen video</a></li>
<li><a href="delete_foto.php">Verwijderen foto</a></li>
<li><a href="delete_video.php">Verwijderen video</a></li>
</ul>
</li>
<li><a href="#">Notulen/agenda</a>
<ul>
<li><a href="agenda.php">Alle agendas</a></li>
<li><a href="notulen.php">Alle notulen</a></li>
<li><a href="add_agenda.php">Toevoegen agenda</a></li>
<li><a href="add_notulen.php">Toevoegen notulen</a></li>
<li><a href="delete_agenda.php">Verwijderen agenda</a></li>
<li><a href="delete_notulen.php">Verwijderen notulen</a></li>
</ul>
</li>
<li>
<form method="post" action="#" ><input type="submit" name="exportToExcel" value="Export to Excel" /></form>
</li>
</ul>
</nav>
class:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
class ExportToExcel{
private $database;
private $filename = 'name.xls';
public function __construct($database)
{
$this->database = $database;
}
//$sql = "select * from ledenlijst";
public function queryToExcel() {
$output = null;
$sql = "SELECT * FROM ledenlijst";
$result = $this->database->query($sql);
if ($result->num_rows > 0) {
//{
$output .= '
<table class="table" bordered="1">
<tr>
<th>Klant voornaam</th>
<th>Klant achternaam</th>
</tr>
';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["naam"].'</td>
<td>'.$row["achternaam"].'</td>
</tr>
';
}
$output .= '</table';
header ("Content-Type: application/xls");
header ("Content-Disposition:attachment; filename= $this->filename");
echo $output;
}
}
}
?>
error_reporting(E_ALL);
ini_set('display_errors', '1');
class ExportToExcel{
private $database;
private $filename = 'name.xls';
public function __construct($database)
{
$this->database = $database;
}
//$sql = "select * from ledenlijst";
public function queryToExcel() {
$output = null;
$sql = "SELECT * FROM ledenlijst";
$result = $this->database->query($sql);
if ($result->num_rows > 0) {
//{
$output .= '
<table class="table" bordered="1">
<tr>
<th>Klant voornaam</th>
<th>Klant achternaam</th>
</tr>
';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["naam"].'</td>
<td>'.$row["achternaam"].'</td>
</tr>
';
}
$output .= '</table';
header ("Content-Type: application/xls");
header ("Content-Disposition:attachment; filename= $this->filename");
echo $output;
}
}
}
?>
Ooit bij nagedacht dat een Excel-bestand niet uit HTML bestaat? Heb je dit zelf geschreven of is dit een slecht voorbeeld van internet? Misschien kan je anders op Google nog zoeken, er is vast wel een oplossing voor.
Excel opent een <table> en maakt er een spreadsheet van.
De reden dat het niet werkt zoals gewenst is omdat het script wel moet stoppen zodra de "excel" uitgepoept is. Een exit na je echo $output zal wonderen doen. Smerig is het wel, maar dat is die class sowieso al.