excel-exportimport

Gesponsorde koppelingen

PHP script bestanden

  1. excel-exportimport

« Lees de omschrijving en reacties

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
<?php
    /*
    LET OP:
    Op dit moment mogen de velden alleen a t/m z , 0 t/m9 en een spatie bevatten.
    Eventuele gevolgen door gebruik van andere tekens kunnen niet op mij verhaald worden
    Nog kan ik hiervoor verantwoordlijk worden gesteld
    
    Ook is de upload functie NOG niet veilig. Dit script is dan ook niet geschikt om publiek te draaien.
    Ik ben niet verantwoordelijk eventueel misbruik of de gevolgen hiervan mocht dit script toch op
    een publieke locatie gehost worden
    */

    error_reporting(E_ALL) ;
    //include de class
    require("Excel.inc.php");
    //maak database verbinding
    require("connect.php");
    $Excel = new Excel() ;
    
    /*Als de optie import word gebruikt doorloopt het script de volgende sctappen
    Het bestand word geupload naar de tmp dit (wel even zelf aanmaken nog) en geconverteerd naar csv
    Er worden een aantal matches en loops doorlopen en er word een tabel weergegeven zoals deze ook in je xls stond*/

    if (isset($_POST["import"]))
    {

        $Excel->upload($_FILES['uploadFile'],"test","tmp/") ;
    }

?>

    <form name="form1" enctype="multipart/form-data" method="post" action="index.php">
      <p>
        <input name="uploadFile"  type="file" id="uploadFile">
      </p>
      <p>
        <input type="submit" name="import" value="Import">
      </p>
    </form>
<!-- Het resultaat van de opgegeven query in het textveld query zal in de xls gezet worden -->
    <form method="post" action="list.php">
        <table>
            <tr>
                <td>Query :</td>
                <td><input type="text" name="query" value="SELECT * FROM colours"></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" name="export" value="Export"></td>
            </tr>
            <tr>
            </tr>
        </table>
    </form>


list.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
/*
    Deze pagina is verantwoordelijk voor de opmaak van de xls export.
*/

    require("Excel.inc.php");
    require("connect.php");
    $Excel = new Excel() ;
    $Excel->export($_POST["query"]);

?>


Excel.inc.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php

class Excel {

    /* Deze funtie upload het bestand en geeft de tabel terug die word weergegeven */
    function import($tmp_location,$file_name)
    {

         $handle = fopen($tmp_location.$file_name, "r");

        if ($handle) {
         $array = explode("\n", fread($handle, filesize($tmp_location.$file_name)));
        }
  $total_array = count($array);
        $i = 0;
        $table = "<table>" ;
        while($i < $total_array) {
            preg_match_all("([a-zA-Z0-9\ ]+)",$array[$i],$data) ;
            //$data = explode(" ", $array[$i]);
            foreach($data as $item)
            {

                $table .= "<tr>" ;
                foreach($item as $item2)
                {

                    $item2 = str_replace("\"","",$item2) ;
                    $table .= "<td>$item2</td>" ;

                }

                $table .= "</tr>" ;
            }

            $i++;
        }

        $table .= "</table>" ;
        print $table ;
    }


    /*
    function save()
    {
    }*/

    /*Deze functie is verantwoordelijk voor het opbouwen van de xls file*/

    function export($select)
    {

        $export = mysql_query($select) or die(mysql_error());
        $fields = mysql_num_fields($export);

        $data = "" ;

        for ($i = 0; $i < $fields; $i++) {
            $data .= $this->convertFieldname(mysql_field_name($export, $i)) . "\t";
        }


        $data .= "\n";

        while($row = mysql_fetch_row($export)) {
            $line = '';
            foreach($row as $value) {
                if ((!isset($value)) OR ($value == "")) {
                    $value = "\t";
                }
else {
                    $value = str_replace('"', '""', $value);
                    $value = '"' . $value . '"' . "\t";
                }

                $line .= $value;
            }

            $data .= trim($line)."\n";
        }

        $data = str_replace("\r","",$data);
        $this->download($data,"test") ;
    }

    /* Deze functie geeft het download scherm */
    function upload($old_file,$new_file,$tmp_path)
    {

        $file_name = $old_file["name"];
        $file_name = stripslashes($file_name);
        $file_name = str_replace("'","",$file_name);
        $new_file = $new_file.".csv" ;
        $copy = copy($old_file["tmp_name"] , $tmp_path.$new_file);
        $this->import($tmp_path,$new_file);
    }

    function
download($content,$filename)
    {

        header("Content-type: application/xls");
        header("Content-Disposition: attachment; filename=$filename.xls");
        header("Pragma: no-cache");
        header("Expires: 0");
        print $content ;
    }

    function
convertFieldname($field)
    {

        $field = str_replace("_"," ",$field) ;
        $field = strtolower($field) ;
        $field = strtoupper(substr($field,0,1)).substr($field,1) ;
        return $field ;
    }

}


?>

 
 

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.