Excel omzetten naar csv en vervolgens opslaan in MySQL dB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nkamp Kamp van de

nkamp Kamp van de

10/10/2011 09:56:25
Quote Anchor link
Hallo,

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?)
 
PHP hulp

PHP hulp

29/04/2024 17:51:04
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/10/2011 12:31:39
Quote Anchor link
Waarom laat je het niet gelijk als csv opslaan?
Anders http://phpexcel.codeplex.com/
 
Nkamp Kamp van de

nkamp Kamp van de

10/10/2011 12:58:38
Quote Anchor link
Omdat dit een extra handeling van de mensen vraagt en je moet je voorstellen er zitten mensen tussen die blij zijn dat ze met excel kunnen werken en die echt geen besef hebben wat csv is. Ja, deze mensen bestaan nog echt! Die weten echt niet wat csv is. En er is niet één persoon die aan een bepaalde lijst sleuteld maar meerdere. En dan vergeet de één het weer op te slaan als csv.... etc. Nee als het enigzins kan wil ik het zo recht toe recht aan houden. Dan doe ik nu wel iets extra werk maar dan werkt het ook.

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
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/10/2011 16:16:19
Quote Anchor link
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?
 
- Roland -

- Roland -

10/10/2011 17:41:16
Quote Anchor link
Ben ook benieuwd, lukt het ? en is het te vinden in de docs van phpexel .....
Ziet er erg uitgebreid uit...
Misschien kun je wat laten zien ?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

11/10/2011 08:14:21
Quote Anchor link
Het is inderdaad erg uitgebreid, de gehele library is bijna 20 Mb. Maar ja, dan kun je wel Excel lezen en schrijven en PDF schrijven. Documentatie is goed.
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
<?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";
?>
Gewijzigd op 11/10/2011 09:21:17 door Ger van Steenderen
 
Nkamp Kamp van de

nkamp Kamp van de

11/10/2011 13:22:38
Quote Anchor link
Nee, maar ik heb er gisteravond geen tijd voor gehad. Vanavond ga ik mijn eerste schreden zetten denk ik. Maar ik heb er wel vertrouwen in dat het mij gaat lukken.

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
 
Nkamp Kamp van de

nkamp Kamp van de

10/08/2012 12:14:47
Quote Anchor link
Hoewel bijna een jaar later heb ik mijn 'projectje' vervolgd.

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
 



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.