exporteren naar excel werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

09/02/2017 17:13:17
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>


class:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
    }
    
    }
    
    }

    

?>
 
PHP hulp

PHP hulp

02/12/2024 15:31:45
 
Marthijn Buijs

Marthijn Buijs

09/02/2017 21:43:00
Quote Anchor link
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.
 
Adoptive Solution

Adoptive Solution

09/02/2017 21:53:31
Quote Anchor link
Er is bij nagedacht.

Excel opent een <table> en maakt er een spreadsheet van.
 
Ben van Velzen

Ben van Velzen

09/02/2017 22:32:24
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.