Excel omzetten naar csv en vervolgens opslaan in MySQL dB
Ik ben voor een vereniging de 'webmaster'. Daar werken commissie(s) en besuursleden met excel bestanden zoals een ledenlijst (kleine 400 leden), teams, trainers overzichten. Ik heb het nu zover geautomatiseerd dat ze mij de excel geven, vervolgens sla ik die op als csv en via een SQL scriptje zet ik deze in de db.
Maar nu wil ik een stap verder:
- Ik heb nu een inlog scherm en het upload/download script gevonden hier op phphulp. Het aanpassen gaat mij -met vallen en opstaan- wel lukken.
- Maar nu de volgende stap: bv. een commissie lid kan straks inloggen. Vervolgens wil ik hem de mogelijkheid "update website" bieden. Dan moet het desbetreffende excel bestand geopend worden opgeslagen worden als csv en vervolgens via het "import" script de website bijgewerkt worden.
Of als iemand zegt dat moet je op een andere manier doen dan hoor ik het graag.
En ik wil ook nog om een advies vragen:
is het beter om de excel bestand(en) in dir op de server te plaatsen of kun je die beter in de database zetten? (Mocht dat in de dB zetten kunnen want ik vraag mij wel hoe je die dan in een database zet en wat moet dit dan voor een veld zijn?)
Edit:
Waar ik nu nog wel achterkom is dat ik met phpexcel niet moet converteren naar csv, maar de content uitlezen en dan met een for loop meteen iedere excel regel in de database plaatsen!
Gewijzigd op 10/10/2011 15:00:00 door nkamp Kamp van de
Nkamp Kamp van de op 10/10/2011 12:58:38:
Waar ik nu nog wel achterkom is dat ik met phpexcel niet moet converteren naar csv, maar de content uitlezen en dan met een for loop meteen iedere excel regel in de database plaatsen!
Dat vermoeden had ik al? Heb je het al aan de praat?
Ziet er erg uitgebreid uit...
Misschien kun je wat laten zien ?
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
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
<?php
//PHPExcel example aangepast met code uit de documentatie
error_reporting(E_ALL);
/** PHPExcel_IOFactory */
require_once '../xtra/PHPExcel/IOFactory.php';
if (!file_exists("05featuredemo.xlsx")) {
exit("Please run 05featuredemo.php first.\n");
}
$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5
echo '<table>' . "\n";
for ($row = 1; $row <= $highestRow; ++$row) {
echo '<tr>' . "\n";
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
//PHPExcel example aangepast met code uit de documentatie
error_reporting(E_ALL);
/** PHPExcel_IOFactory */
require_once '../xtra/PHPExcel/IOFactory.php';
if (!file_exists("05featuredemo.xlsx")) {
exit("Please run 05featuredemo.php first.\n");
}
$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5
echo '<table>' . "\n";
for ($row = 1; $row <= $highestRow; ++$row) {
echo '<tr>' . "\n";
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
Gewijzigd op 11/10/2011 09:21:17 door Ger van Steenderen
Ik hoop dat ik aan het eind van de week jullie kan mededelen dat het gelukt is.
In ieder geval, voor zover, bedankt voor jullie hulp.
Oh, btw, toch nog een vraagje op de valreep. De hele library kan ik volgens my in de PEAR dir van XAMMP (localhost machientje) zetten maar bij de provider kan dat natuurlijk niet. Dus ik wou het maar in de httpdocs/include/lib/phpexcel opnemen. Dat kan toch? Ik kom er natuurlijk zelf wel achter maar als iemand zegt dat doe je fout dan hoor ik het graag.
Gewijzigd op 11/10/2011 13:27:25 door nkamp Kamp van de
Ik maak nu gebruik van PHPExcel. Hiermee open ik het excel bestand en itereer ik door het excel bestand. Als ik een rij ingelezen heb zet ik dit meteen in de database. Hoe lang dit duurt bij 400 rijen weet ik nog niet maar vind ik ook niet interesant.
Tevens maak ik gebruik van het Script van Niels Kievit. Hiervan gebruik ik het in-/uitlog deel + het upload deel heb ik aangepast voor het uploaden van de xls/xlsx bestanden.
Gewijzigd op 10/08/2012 12:16:59 door nkamp Kamp van de