PHPExcel opent excel niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

Anaplan Developer

Dit ga je doen What are you going to do: Picking up Stories: Design planning had, how are we going to build it in Anaplan; Talking to the end user to build a forecasting model; Having contact with the data team about which data is needed; Being able to convert an Excel sheet into a 3, 4 or 5 dimensional modeling environment; Giving knowledge sessions about Anaplan; Solving incidents; Making instructional videos on how teams should read forecasts; Writing blogs about forecasting. Hier ga je werken We are looking for an Anaplan Builder to deliver end-to-end solutions within a big

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een ontwikkelteam met 15 developers en twee testers. Samen zijn jullie verantwoordelijk voor financiële applicaties met meer dan 50.000 gebruikers. Een deel van het team is verantwoordelijk voor de webapplicaties van deze organisatie. Ook zijn er twee app ontwikkelaars werkzaam in het team die zich focussen op de mobiele applicatie. Als .NET ontwikkelaar ga jij aan de slag met de webapplicaties van deze organisatie. Hierbij maak jij o.a. gebruik van C# .NET, ASP.NET, T-SQL, Angular en TypeScript. De nadruk van jouw functie ligt wel op de backend van de applicatie. Wat jouw functie

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Onderdelen van jouw functie: Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook

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

27/05/2026 09:02:39
 
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.