[Opgelost] Automatisch Excel-lijst genereren via company directory Topic is solved

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Arno

[Opgelost] Automatisch Excel-lijst genereren via company directory

Post by Arno »

Voor de site van een popkoor maak ik gebruik van Company Directory om daarmee een smoelenboek te genereren. Werkt prima, en zelfs zo goed dat deze beter bijgehouden wordt dan de ledenadministratie in het bestuur. In het smoelenboek kun je dan ook alle adresgegevens etc. van personen invoeren, en dit werkt echt super.

Nu ontstond er de vraag vanuit het bestuur of het mogelijk is om de gegevens van het smoelenboek te downloaden als Excel-bestand, zodat je altijd de beschikking hebt over de meest actuele gegevens (er vanuit gaande dat die op de site het meest actueel zijn). Via de samenvattingssjablonen in Company Directory kan ik eenvoudig een tabel genereren die alleen de info toont die ik wil zien, maar weten jullie of het ook mogelijk is dit naar een bestand weg te schrijven dat door Excel leesbaar is (xls of xml bijvoorbeeld)?

De lijst die ik nu genereer via de samenvattingssjabloon:
Image

Ik vind wel scripts die van een php-pagina een Excel-bestand kunnen genereren, maar die verlangen (voor zover ik kan zien) een schoon php-bestand met alleen de info die je wil omzetten. Een lijst genereren via CMSMS bevat al snel allerlei html-spul wat uit je paginasjablonen komt.

Iemand hier toevallig ervaring mee?
Last edited by Arno on Thu Jul 23, 2009 3:32 pm, edited 1 time in total.
deactivated010521

Re: Automatisch Excel-lijst genereren via company directory

Post by deactivated010521 »

----------
Last edited by deactivated010521 on Tue Mar 12, 2013 4:23 pm, edited 1 time in total.
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

arnoud wrote: Genereer een tab of comma delimited file deze kunnen in ieder willekeurige spreadsheet (ook Excel)  geimporteerd worden:

zoiets als:

"voornaam01-tab"\t"achternaam01-tab"\t"adres01-tab"\n
"voornaam02-tab"\t"achternaam02-tab"\t"adres02-tab"\n

"voornaam01-comma", "achternaam01-comma", "adres01-comma"\n
"voornaam02-comma", "achternaam02-comma", "adres02-comma"\n
Eh...ja...maar weet je ook hoe ik dit via CMSMS kan regelen? :o
deactivated010521

Re: Automatisch Excel-lijst genereren via company directory

Post by deactivated010521 »

----------
Last edited by deactivated010521 on Tue Mar 12, 2013 4:23 pm, edited 1 time in total.
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Arnoud, dat ziet er goed uit. Ik ga er van 't weekend even naar kijken. Hopelijk kom ik eruit om via die SQL Query de juiste tabellen van de Company Directory aan te roepen; dat soort dingen doe ik vrijwel nooit handmatig.
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Automatisch Excel-lijst genereren via company directory

Post by Jos »

Ik weet niet of de methode van Arnoud je document direct in excel opent, wellicht wel.

Anders kan ik je deze headers aanraden:

Code: Select all

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Ledenlijst_" . date('Ymd') . ".xls");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
Waarbij je de $output op moet maken in een html document met een table (tr en td's)

Met excel 2007 komt er overigens nog wel een melding tussendoor dat het niet de juiste indeling zou zijn, met 2003 komt er geen melding.

Even los hiervan is het aan te raden om de screenshotjes in je eerste post hier weg te halen, al ziet het er wel vreselijk mooi uit. Maar deze privé gegevens en foto's gaan niemand wat aan toch?
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Jos wrote: Even los hiervan is het aan te raden om de screenshotjes in je eerste post hier weg te halen, al ziet het er wel vreselijk mooi uit. Maar deze privé gegevens en foto's gaan niemand wat aan toch?
Hmm, je hebt helemaal gelijk. Had ik nog helemaal niet aan gedacht. Ik zal de eerste verwijderen en de tweede even een beetje doezelen...bedankt voor de tip!

Wat betreft je code; dit ziet er wel goed uit. De tabel zoals ik die nu genereer is een normale html table, dus wellicht is dat goed te implementeren. Kan ik de codes die je gebruikt dan gebruiken in een CMSMS template, waarbij ik alleen een {content} laat staan en daar de tabel inzet? ???
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Automatisch Excel-lijst genereren via company directory

Post by Jos »

Ja in een template is het proberen waard. Boven de {content} moet je dan alsnog een UDT aanroepen waarin je de headers hebt staan.
Als je de melding krijgt zoiets als "headers already sent" werkt het niet via deze oplossing en zul je alles toch in een UDT moeten gieten.

Het leuke van een table is dat je er ook allerlei opmaak aan mee kunt geven, zoals etc
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Sorry, maar ik kom er niet uit. CSS is mijn ding, dit soort technische html-dingen niet. Wat moet ik in m'n template laten staan qua html en header dingen? Wanneer ik een nieuwe paginatemplate aanmaak zit er standaard natuurlijk al veel in (doctype, html xmlns, head etc.) Moet ik dat laten staan, of moet dat juist weg?

In het laatste geval zou m'n template dan worden:

Code: Select all

{excel-header}
{content}
Waarbij {excel-header} mijn UDT is. Maar dat ziet er dan weer te simpel uit (en werkt overigens ook niet; ik krijg netjes de tabel te zien in m'n browser).

Zou je me nog een stapje verder willen helpen? :-\
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Automatisch Excel-lijst genereren via company directory

Post by Jos »

Ja, ik heb het aan de praat gekregen  8)

Ik heb eerst een UDT aangemaakt
UDT: excel_header

Code: Select all

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Ledenlijst_" . date('Ymd') . ".xls");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
Daarna heb ik een template aangemaakt. Zoals jij het voorstelt werkt het al, maar als je wat html-zaken en opmaak erbij voegt, wordt het nog mooier:
Template: exceldump

Code: Select all

{excel_header}
<__html>
<head>
<title>Excel Spreadsheet</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
</__body>
<font size="8" face="Arial">
{content}
</font>
<__body>
</__html>
Tot slot heb ik een pagina aangemaakt. Deze pagina heb ik de template 'exceldump' aan toegekend.
In het contentveld heb ik een table gezet, die keurig in excel wordt weergegeven als ik op de menulink naar deze pagina klik

voilá
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Ik heb het nu exact zo staan zoals je heb aangegeven, maar ik krijg een keurige tabel in m'n browser te zien, niet in Excel :'(

Image

Als ik in de bron kijk van m'n html-pagina krijg ik:

Code: Select all

<__html>
<head>
<title>Excel Spreadsheet</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
</__body>
<font size="8" face="Arial">
<table>
	<tbody>
		<tr>
			<td><b>Naam</b></td>
			<td><b>Adres</b></td>

			<td><b>Postcode en plaats</b></td>
			<td><b>Telefoon</b></td>
			<td><b>E-mailadres</b></td>
		</tr>
		<tr>
			<td>Voornaam Achternaam</td>

			<td>Straatnaam 1</td>

			<td>1234 AB Oud-Beijerland</td>

			<td>(0123) 456789</td>
			<td>naam@popupkoor.nl</td>

		</tr>
</tbody>
</tabel>
</font>
<__body>
</__html><!-- 0,256979 / 6 / 9291408 / 0 -->
Perfect voor webgebruik natuurlijk, maar ik zou 'm zo graag in Excel zien ;)
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Automatisch Excel-lijst genereren via company directory

Post by Jos »

Oei... jammer idd...

De headers worden door jouw browser waarschijnlijk niet op dezelfde manier geslikt als bij mij. Bij mijn weten werkt dit op windows-XP-systemen met FF en IE6/7 en Excel2003/2007
Op wat voor systeem draai je zelf? Op een Mac toevallig?
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Jos wrote: Oei... jammer idd...

De headers worden door jouw browser waarschijnlijk niet op dezelfde manier geslikt als bij mij. Bij mijn weten werkt dit op windows-XP-systemen met FF en IE6/7 en Excel2003/2007
Op wat voor systeem draai je zelf? Op een Mac toevallig?
Ja, op een Mac, en in zowel Safari als Firefox pakt 'ie hem niet. Ik heb 'm nu even getest op een Windows PC (onder IE) waar ook Excel op geïnstalleerd staat, maar ook daar krijg ik geen download te zien (hetzelfde dus als op de Mac).
Arno

Re: Automatisch Excel-lijst genereren via company directory

Post by Arno »

Soms als ik refresh krijg ik deze melding in m'n browser, misschien kun je daar nog iets uit herleiden:

Code: Select all

string(121) "Smarty error: [in template:34 line 1]: syntax error: unrecognized tag: excel-header (Smarty_Compiler.class.php, line 446)" string(110) "Smarty error: [in template:34 line 1]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 590)"
Ik werk trouwens met CMSMS 1.4
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Automatisch Excel-lijst genereren via company directory

Post by Jos »

De foutmelding is niet te zien

Aan de CMSms versie kan het haast niet liggen
Post Reply

Return to “Dutch - Nederlands”