Excel bestand genereren
Hallo,
Ik heb al eerder met php een excel bestand aangemaakt, maar kan het nu helaas niet meer vinden hoe ik het toen had gedaan... Zouden jullie me kunnen helpen, ik heb dus geen bestaande code, ik heb wel de waarde's deze komen vanuit de database... Is het handig om deze eerst in een array te zetten en vanuit daar te exporteren naar excel??? Zo ja, hoe input ik de database output naar een array?
Graag zou ik ook een pdf en een word variant ervan willen maken, is dat mogelijk met php?
Ik heb al eerder met php een excel bestand aangemaakt, maar kan het nu helaas niet meer vinden hoe ik het toen had gedaan... Zouden jullie me kunnen helpen, ik heb dus geen bestaande code, ik heb wel de waarde's deze komen vanuit de database... Is het handig om deze eerst in een array te zetten en vanuit daar te exporteren naar excel??? Zo ja, hoe input ik de database output naar een array?
Graag zou ik ook een pdf en een word variant ervan willen maken, is dat mogelijk met php?
Gesponsorde koppelingen:
Je hebt diverse classes die dit onder steunen, dus zoek even op bijvoorbeeld:
mysql to excel
ander trefwoorden:
csv
header
mysql to excel
ander trefwoorden:
csv
header
Gewijzigd op 11/05/2011 18:35:23 door Noppes Homeland
is het ook mogelijk om naar word te exporteren? kan zo niks vinden op google
Yep, header + html of een een word/xml maken datzelfde geld overigens ook voor excel
en dit is er ook nog:
http://php.net/manual/en/book.com.php
maar niet altijd toepasbaar
en dit is er ook nog:
http://php.net/manual/en/book.com.php
maar niet altijd toepasbaar
Gewijzigd op 11/05/2011 19:12:45 door Noppes Homeland
Een oude post van mezelf. Misschien heb je er wat aan...
http://www.phphulp.nl/php/forum/topic/excel-naar-mysql/74547/last/
http://www.phphulp.nl/php/forum/topic/excel-naar-mysql/74547/last/
word/xml
wat bedoel je daarmee?
wat bedoel je daarmee?
open word en type wat woorden, sla het op als xml en dan heb je een word xml document wat je met php DOM / simplexml enz zelf kan opbouwen
maar hoe kan ik vanuit daar mij output uit de database invoegen in mijn word bestandje?
het gaat om een materiaallijst.
het gaat om een materiaallijst.
Je kan met:
http://www.php.net/DOM
http://www.php.net/simplexml
http://www.php.net/xmlwriter
eenzelfde opbouw maken!
maar waarom naar excel/word? Lijkt het je niet handiger om het met http://www.fpdf.org/ een pdf bestand te creeeren.
http://www.php.net/DOM
http://www.php.net/simplexml
http://www.php.net/xmlwriter
eenzelfde opbouw maken!
maar waarom naar excel/word? Lijkt het je niet handiger om het met http://www.fpdf.org/ een pdf bestand te creeeren.
nope, we willen graag een aanpasbare variant hebben, dus je downloadt de lijst die op dat moment gevreerd is, en als er aanpssingen zijn, willen we deze eerst wijzigen in het excel/csv
word omdat we ook bij sommige dingen uitleggen en instructies hebben... maar ook voor de materiaallijst.
word omdat we ook bij sommige dingen uitleggen en instructies hebben... maar ook voor de materiaallijst.
Ik ben geen expert maar ook ik heb hier lang naar gezocht, onderstaande code werkt bij mij prima.
en dan de volgende exportcsv.inc.php
succes...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
error_reporting(E_ALL);
$host = "localhost"; //mysql locatie
$user = "blabla"; //mysql gebruikersnaam
$pass = "bla"; //mysql wachtwoord
$db = "blabla"; //mysql database
// Connect to the database
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
require 'exportcsv.inc.php';
$table="table"; // this is the tablename that you want to export to csv from mysql.
exportMysqlToCsv($table);
?>
error_reporting(E_ALL);
$host = "localhost"; //mysql locatie
$user = "blabla"; //mysql gebruikersnaam
$pass = "bla"; //mysql wachtwoord
$db = "blabla"; //mysql database
// Connect to the database
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
require 'exportcsv.inc.php';
$table="table"; // this is the tablename that you want to export to csv from mysql.
exportMysqlToCsv($table);
?>
en dan de volgende exportcsv.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
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
<?php
function exportMysqlToCsv($table,$filename = 'export.csv')
{
$csv_terminated = "\n";
$csv_separator = ";";
$csv_enclosed = '"';
$csv_escaped = "\\";
$sql_query = "select * from $table order by achternaam";
// Gets the data from the database
$result = mysql_query($sql_query);
$fields_cnt = mysql_num_fields($result);
$schema_insert = '';
for ($i = 0; $i < $fields_cnt; $i++)
{
$l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
stripslashes(mysql_field_name($result, $i))) . $csv_enclosed;
$schema_insert .= $l;
$schema_insert .= $csv_separator;
} // end for
$out = trim(substr($schema_insert, 0, -1));
$out .= $csv_terminated;
// Format the data
while ($row = mysql_fetch_array($result))
{
$schema_insert = '';
for ($j = 0; $j < $fields_cnt; $j++)
{
if ($row[$j] == '0' || $row[$j] != '')
{
if ($csv_enclosed == '')
{
$schema_insert .= $row[$j];
} else
{
$schema_insert .= $csv_enclosed .
str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
}
} else
{
$schema_insert .= '';
}
if ($j < $fields_cnt - 1)
{
$schema_insert .= $csv_separator;
}
} // end for
$out .= $schema_insert;
$out .= $csv_terminated;
} // end while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
// Output to browser with appropriate mime type, you choose ;)
header("Content-type: text/x-csv");
//header("Content-type: text/csv");
//header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$filename");
echo $out;
exit;
}
?>
function exportMysqlToCsv($table,$filename = 'export.csv')
{
$csv_terminated = "\n";
$csv_separator = ";";
$csv_enclosed = '"';
$csv_escaped = "\\";
$sql_query = "select * from $table order by achternaam";
// Gets the data from the database
$result = mysql_query($sql_query);
$fields_cnt = mysql_num_fields($result);
$schema_insert = '';
for ($i = 0; $i < $fields_cnt; $i++)
{
$l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
stripslashes(mysql_field_name($result, $i))) . $csv_enclosed;
$schema_insert .= $l;
$schema_insert .= $csv_separator;
} // end for
$out = trim(substr($schema_insert, 0, -1));
$out .= $csv_terminated;
// Format the data
while ($row = mysql_fetch_array($result))
{
$schema_insert = '';
for ($j = 0; $j < $fields_cnt; $j++)
{
if ($row[$j] == '0' || $row[$j] != '')
{
if ($csv_enclosed == '')
{
$schema_insert .= $row[$j];
} else
{
$schema_insert .= $csv_enclosed .
str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
}
} else
{
$schema_insert .= '';
}
if ($j < $fields_cnt - 1)
{
$schema_insert .= $csv_separator;
}
} // end for
$out .= $schema_insert;
$out .= $csv_terminated;
} // end while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
// Output to browser with appropriate mime type, you choose ;)
header("Content-type: text/x-csv");
//header("Content-type: text/csv");
//header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$filename");
echo $out;
exit;
}
?>
succes...
hey bart,
zal hem vanavond even proberen, alvast bedankt dit ziet er idd ongeveer uit hoe ik hem toen ook had.
zal hem vanavond even proberen, alvast bedankt dit ziet er idd ongeveer uit hoe ik hem toen ook had.
Omslachtig, je kan natuurlijk ook gelijk met SQL de csv aanmaken dan heb je geen PHP nodig.
jij bedoelt via phpmyadmin? dat wil ik dus zekers te weten niet hebben, dan moet iedereen toegang ertot krijgen en dat gaat niet gebeuren!
Toevoeging op 12/05/2011 18:03:18:
@bart --> Script werkt perfect super dank je wel!
Nog een vraag: is het mogelijk om maar enkele velden te exporteren en niet alle velden???
of is dit gewoon mogelijk via de select veld1, veld2, veld3 FROM tabel order by Name query?
Toevoeging op 12/05/2011 18:03:18:
@bart --> Script werkt perfect super dank je wel!
Nog een vraag: is het mogelijk om maar enkele velden te exporteren en niet alle velden???
of is dit gewoon mogelijk via de select veld1, veld2, veld3 FROM tabel order by Name query?
Nee, phpmyadmin is een vloek en zeer zeker geen database beheer tool!!
Vooral niet komen janken dat je opeens het een en ander kwijt bent door toedoen gebuik van deze vloek.
En waarom stel je een vraag over iets wat je zelf kunt onderzoeken!
Vooral niet komen janken dat je opeens het een en ander kwijt bent door toedoen gebuik van deze vloek.
En waarom stel je een vraag over iets wat je zelf kunt onderzoeken!
welke database beheer raad je dan aan...
phpmyadmin zat trowens standaard geinstalleerd, volgens mij kan ik ook niks anders installeren...
phpmyadmin zat trowens standaard geinstalleerd, volgens mij kan ik ook niks anders installeren...
Jawel hoor... Dat is wel mogelijk.
aar --> hoe dan en welke raden jullie aan... wat zijn de voordelen t.o.v. phpmyadmin, en wat de nadelen??
Noppes Homeland op 12/05/2011 18:15:59:
Nee, phpmyadmin is een vloek en zeer zeker geen database beheer tool!!
Wat een onzin.
Noppes Homeland op 12/05/2011 18:15:59:
Nee, phpmyadmin is een vloek en zeer zeker geen database beheer tool!!
Vooral niet komen janken dat je opeens het een en ander kwijt bent door toedoen gebuik van deze vloek.
En waarom stel je een vraag over iets wat je zelf kunt onderzoeken!
Vooral niet komen janken dat je opeens het een en ander kwijt bent door toedoen gebuik van deze vloek.
En waarom stel je een vraag over iets wat je zelf kunt onderzoeken!
Pfff, daar gaan we weer. Waarom kom je hier iedere keer weer mee op de proppen. Het draagt niks bij. Als je geen phpMyAdmin wil gebruiken dan doe je dat toch gewoon niet? Maar ga alsjeblieft niet iedere keer weer melden dat je phpMyAdmin niet goed vindt, of start er een aparte topic over waarin je je mening GRONDIG uiteenzet en onderbouwt, zodat mennsen er op kunnen reageren. Maar alsjeblieft hou op met het verstoren van ieder topic dat over phpMyAdmin gaat.
Daarnaast vind ik je hele manier van praten vaak erg negatief en onvriendelijk over komen. Misschien wordt het eens tijd voor een stukje zelfreflectie?
Gewijzigd op 12/05/2011 22:31:59 door Ozzie PHP
Ozzie PHP op 12/05/2011 22:30:55:
Daarnaast vind ik je hele manier van praten vaak erg negatief en onvriendelijk over komen. Misschien wordt het eens tijd voor een stukje zelfreflectie?
Hij begint een beetje op Karl te lijken, alleen kent Karl wel zijn grenzen en zijn zijn reactie's een stuk nuttiger.
Gewijzigd op 12/05/2011 22:49:25 door gerhard l



