PHPExcel opent excel niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Magento developer

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

NodeJS developer

Functie Als Fullstack developer kom je te werken in het ontwikkelteam. Je bent samen met je collega’s continu bezig om de software uit te breiden, maar hiernaast doe je onderzoek naar de inzet van nieuwe technieken, tools of bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Qua technische kennis zoeken ze iemand die goed op de hoogte is van de nieuwste ontwikkelingen, daar zij nu ontwikkelen op NodeJs back-end,

Bekijk vacature »
Stefan H

stefan H

07/10/2014 14:33:43
Quote Anchor link
Kan iemand mij helpen met onderstaande ,

Ik heb via een tutorial een script gemaakt om gegevens uit de database te open in een excel bestand ,

Nu opent excel niet maar worden allerlei rare tekens weer gegeven op het pagina

Ziet iemand wat er fout zit ?

Alvast bedankt voor reactie
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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?php
require_once("../src/PHPExcel.php");
include("config_transactions.php");

$number = $_POST['number'];
$date_from = $_POST['date_from'];
$date_till = $_POST['date_till'];
$connect_name = $_POST['select_connect_name'];
$bijschrijvingen = $_POST['bijschrijvingen'];
$afschrijvingen = $_POST['afschrijvingen'];
$opmerkingen = $_POST['opmerkingen'];
$tc = $_POST['tc'];

if($date_from !=""){
$date_from_sql = "$date_from";
}

else{
$date_from_sql = "1970-01-01";
}

if($date_till !=""){
$date_till_sql = "$date_till";
}

else{
$date_till_sql = "2099-01-01";
}

if($bijschrijvingen !=""){
$bijschrijvingen_sql = "AND trans_type = 'C' AND value='$bijschrijvingen'";
}

else{
$bijschrijvingen_sql = "";
}

if($connect_name !=""){
$connect_name_sql = "AND connect_name = '$connect_name'";
}

else{
$connect_name_sql = "";
}

if($afschrijvingen !=""){
$afschrijvingen_sql = "AND trans_type = 'D' AND value='$afschrijvingen'";
}

else{
$afschrijvingen_sql = "";
}

if($opmerkingen !=""){
$opmerkingen_sql = "AND (note1 = '$opmerkingen' OR note2 = '$opmerkingen')";
}

else{
$opmerkingen_sql = "";
}

if($tc !=""){
$tc_sql = "AND trans_code = '$tc'";
}

else{
$tc_sql = "";
}


$load_transactions = "SELECT
id,
date,
trans_type,
value,
connect_name,
trans_code,
note1,
note2 FROM transactions
WHERE number=$number
AND date BETWEEN '$date_from_sql' AND '$date_till_sql'
$connect_name_sql
$bijschrijvingen_sql
$afschrijvingen_sql
$opmerkingen_sql
$tc_sql ORDER BY date DESC"
;

$result = mysqli_query($connect, $load_transactions);

function
getRow($result){
    return $result->fetch_assoc();
}


    try {
        $sheet = new PHPExcel();
        
        // Set metadata
        $sheet->getProperties()->setCreator('www.example.com')
                               ->
setLastModifiedBy('www.example.com')
                               ->
setTitle('TransactieOverzicht')
                               ->
setKeywords('TransactieOverzicht');
        
        // Set default settings
        $sheet->getDefaultStyle()->getAlignment()->setVertical(
                PHPExcel_Style_Alignment::VERTICAL_TOP);
        $sheet->getDefaultStyle()->getAlignment()->setHorizontal(
                PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $sheet->getDefaultStyle()->getFont()->setName('Lucida Sans Unicode');
        $sheet->getDefaultStyle()->getFont()->setSize(12);
        
        // Get reference to active spreadsheet in workbook
        $sheet->setActiveSheetIndex(0);
        $activeSheet = $sheet->getActiveSheet();
        
        // Set print options
        $activeSheet->getPageSetup()->setOrientation(
                PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE)
                ->
setFitToWidth(1)
                ->
setFitToHeight(0);
        
        $activeSheet->getHeaderFooter()->setOddHeader('&C&B&16' .
                $sheet->getProperties()->getTitle())
                ->
setOddFooter('&CPage &P of &N');
        
        // Populate with data
        $row = getRow($result);
        $colHeaders = array_keys($row);
        $col = 'A';
        $rownum = 1;
        
        // Set column headings
        foreach ($colHeaders as $header) {
            $activeSheet->setCellValue($col . $rownum, $header);
            $activeSheet->getStyle($col . $rownum)->getFont()->setBold(true);
            if ($col == 'G') {
                $activeSheet->getColumnDimension($col)->setWidth(60);
            }
else {
                $activeSheet->getColumnDimension($col)->setAutoSize(true);
            }

            $col++;
        }

        
        // Populate individual cells with data
        do {
            $col = 'A';
            $rownum++;
            foreach ($row as $value) {
                $activeSheet->setCellValue($col++ . $rownum, $value);
            }
        }
while ($row = getRow($result));
        
        // Format individual columns
        $activeSheet->getStyle('B2:B' . $rownum)->getAlignment()
            ->
setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
        $activeSheet->getStyle('G2:G' . $rownum)->getAlignment()
            ->
setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT)
            ->
setWrapText(true);
        $activeSheet->getStyle('D2:D' . $rownum)->getNumberFormat()
            ->
setFormatCode('#,##0');
        $activeSheet->getStyle('F2:F' . $rownum)->getNumberFormat()
            ->
setFormatCode('$#,##0.00');
        
        // Give spreadsheet a title
        $activeSheet->setTitle('Cars');
        
        // Generate Excel file and download
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="cars.xlsx"');
        header('Cache-Control: max-age=0');
        
        $writer = PHPExcel_IOFactory::createWriter($sheet, 'Excel2007');
        $writer->save('php://output');
        exit;
        
    }
catch (Exception $e) {
        $error = $e->getMessage();
    }

?>
 
PHP hulp

PHP hulp

03/05/2024 21:13:00
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2014 15:16:06
Quote Anchor link
Waarschijnlijk genereert php foutmeldingen waardoor je bestandsindeling in één keer verknalt wordt.

Het handigste is om regel 153, 154, 155 en regel 158 even te voorzien van twee slashes zodat het slechts commentaar wordt en dan deze pagina even rechtstreeks aanroepen vanuit de browser. Je krijgt dan in ieder geval foutmeldingen dat er $_POST variabelen niet bestaan. In bovenstaande code zou je daar ook rekening mee moeten houden :-)

Eventueel kun je in php gewoon even zelf een $_POST var aanmaken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_POST
['number'] = 33;
?>


Dit is niet een nette oplossing maar om even te testen moet het wel kunnen.



Toevoeging op 07/10/2014 15:19:00:

Als je uiteindelijk weer een script hebt zonder foutmeldingen dan haal je de slashes weer weg

Toevoeging op 07/10/2014 15:23:45:

Voorbeeldje voor het opvangen van ontbrekende post vars:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$number
= 'Onbekend';
if(isset($_POST['number']))
    $number = $_POST['number'];
?>
Gewijzigd op 07/10/2014 15:19:47 door Frank Nietbelangrijk
 
Stefan H

stefan H

07/10/2014 16:08:52
Quote Anchor link
krijg nu de volgende fout meldingen in php errorreport . enig idee wat deze betekenen?

Warning: array_keys() expects parameter 1 to be array, null
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php // Populate with data
        $row = getRow($result);
        $colHeaders = array_keys($row);
        $col = 'A';
        $rownum = 1;
?>


Warning: Invalid argument supplied for foreach() in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?phpforeach ($colHeaders as $header) {
            $activeSheet->setCellValue($col . $rownum, $header);
            $activeSheet->getStyle($col . $rownum)->getFont()->setBold(true);
            if ($col == 'G') {
                $activeSheet->getColumnDimension($col)->setWidth(60);
            } else {
                $activeSheet->getColumnDimension($col)->setAutoSize(true);
            }
            $col++;
        }
?>


) Warning: Invalid argument supplied for foreach() in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($row as $value) {
                $activeSheet->setCellValue($col++ . $rownum, $value);
            }

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2014 16:45:13
Quote Anchor link
Dat betekent dat $row geen array is maar FALSE. fetch_assoc() geeft namelijk FALSE terug wanneer er geen rij voorhanden is.
Jij gaat er op regel 112 gewoon vanuit dat er altijd een (nieuw) record uit de database komt. Maar ook 0 beschikbare records naar aanleiding van een query is heel goed mogelijk.

P.s. je moet je niet druk maken over de tweede of derde foutmelding. Die komt 99 van de 100 keer omdat er al eerder een fout optrad.
Gewijzigd op 07/10/2014 16:52:58 door Frank Nietbelangrijk
 
Stefan H

stefan H

07/10/2014 17:34:35
Quote Anchor link
Oke klinkt logisch

ik dacht dit misschien op te kunnen lossen door onderstaand
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$row
= getRow($result);
        if(!empty($row)){
        $colHeaders = array_keys($row);
        }

        else{
        $colHeaders = "unknown";
        }

?>


maar nu krijg ik nog steeds de laatste 2 foutmeldingen en nog steeds die rare tekens
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/10/2014 20:05:09
Quote Anchor link
array_keys geeft een array terug, dus dan zal het op zijn minst worden: $colheaders = array('Unknown')

Echter heeft het denk ik niet zo veel zin om een excelsheet te produceren waar verder geen inhoud in staat behalve
25 keer 'Unknown'.

ah..
Ik zie dat je de mysqli_ functies zowel object georiënteerd als procedureel gebruikt. dat gaat denk ik niet werken en is wellicht de reden dat er geen records opgehaald worden.

verander de getRow functie naar het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function getRow($result){
    return mysqli_fetch_assoc($result);
}

?>


Om toch nog even het verhaal 'wat te doen als er geen records gevonden worden' af te maken:
controleer van te voren of je wel minimaal één record hebt gekregen uit de database door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(mysqli_num_rows($result) > 0)
{

    // we hebben minimaal één record in $result klaarstaan, dus we kunnen een excelsheet gaan maken
}
Gewijzigd op 07/10/2014 20:09:31 door Frank Nietbelangrijk
 
Stefan H

stefan H

09/10/2014 20:42:35
Quote Anchor link
Inmiddels gevonden wat er fout ging , misschien een slordig foutje maar ik maakte het verzoek met een Ajax call . Dat blijkt dus niet te werken met phpexcel .

Bedankt voor de reacties ,
@ frank inderdaad wel even controle toegevoegd of er wel een record gevonden word
 



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.