excel-exportimport
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
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>
/*
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)
Excel.inc.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
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
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 ;
}
}
?>
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 ;
}
}
?>