Matt Hutch
Matt Hutch

Reputation: 463

PHPExcel data posting FALSE in cells when text is empty?

I'm using PHPExcel to create a document, everything works fine when there is data entered into my text documents. Which is what i'm using to provide the data to create the Excel document. Now the issue is, if there isn't any data in the text document it creates it with FALSE in the cell. Anyone know why this is?

<?php
    //Excel Transfer
    $myFile=fopen("DATA/Spo.txt","r") or exit("Can't open file!");
    $Spo = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Cont.txt","r") or exit("Can't open file!");
    $Cont = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Site.txt","r") or exit("Can't open file!");
    $Site = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Job.txt","r") or exit("Can't open file!");
    $Job = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/ObBrief.txt","r") or exit("Can't open file!");
    $ObBrief = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/ObAgreed.txt","r") or exit("Can't open file!");
    $ObAgreed = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/ObDate.txt","r") or exit("Can't open file!");
    $ObDate = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/GoBrief.txt","r") or exit("Can't open file!");
    $GoBrief = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/GoAgreed.txt","r") or exit("Can't open file!");
    $GoAgreed = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/GoDate.txt","r") or exit("Can't open file!");
    $GoDate = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/FeBrief.txt","r") or exit("Can't open file!");
    $FeBrief = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/FeAgreed.txt","r") or exit("Can't open file!");
    $FeAgreed = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/FeDate.txt","r") or exit("Can't open file!");
    $FeDate = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Q1.txt","r") or exit("Can't open file!");
    $Q1 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q2.txt","r") or exit("Can't open file!");
    $Q2 = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Q3.txt","r") or exit("Can't open file!");
    $Q3 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q4.txt","r") or exit("Can't open file!");
    $Q4 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q5.txt","r") or exit("Can't open file!");
    $Q5 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q6.txt","r") or exit("Can't open file!");
    $Q6 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q7.txt","r") or exit("Can't open file!");
    $Q7 = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Q8.txt","r") or exit("Can't open file!");
    $Q8 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q9.txt","r") or exit("Can't open file!");
    $Q9 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Q10.txt","r") or exit("Can't open file!");
    $Q10 = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Add.txt","r") or exit("Can't open file!");
    $Add = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Name.txt","r") or exit("Can't open file!");
    $Name = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Title.txt","r") or exit("Can't open file!");
    $Title = fgets($myFile);
    fclose($myFile);    

    $myFile=fopen("DATA/Date.txt","r") or exit("Can't open file!");
    $Date = fgets($myFile);
    fclose($myFile);

    Include_once 'PHP/PHPExcel.php';

    $objPHPExcel = new PHPExcel();
    $activeSheet = $objPHPExcel->getActiveSheet();
    $objPHPExcel->getActiveSheet()->setTitle('Senior Managers Site Tour');
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);

    $styleArray = array(
        'borders' => array(
            'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN
                )
            )
        );  

    //Set Up
    $activeSheet->setCellValue('E1','Senior Managers Site Tour');
    $objPHPExcel->getActiveSheet()->getStyle('A1:N70')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->mergeCells('A1:A70');
    $objPHPExcel->getActiveSheet()->mergeCells('N1:N70');
    $objPHPExcel->getActiveSheet()->getStyle('B6:M68')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);

    //Logo & Title
    $objPHPExcel->getActiveSheet()->mergeCells('B1:D4');
    $objPHPExcel->getActiveSheet()->mergeCells('E1:M4');
    $objPHPExcel->getActiveSheet()->mergeCells('B5:M5');

    $objDrawing = new PHPExcel_Worksheet_Drawing();
    $objDrawing->setName('Murphys Logo');
    $objDrawing->setPath('IMAGES/LogoExcel.png');
    $objDrawing->setCoordinates('B1');
    $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

    $titleArray = array(
        'font'  => array(
            'bold'  => true,
            'size'  => 32,
        ));

    $styleTitleAlign = array(
        'alignment' => array(
            'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        )
    );

    $objPHPExcel->getActiveSheet()->getStyle('E1')->applyFromArray($titleArray);
    $objPHPExcel->getActiveSheet()->getStyle('E1')->applyFromArray($styleTitleAlign);

    //Basic Information
    $objPHPExcel->getActiveSheet()->mergeCells('B6:D6');
    $objPHPExcel->getActiveSheet()->mergeCells('E6:G6');
    $objPHPExcel->getActiveSheet()->mergeCells('H6:J6');
    $objPHPExcel->getActiveSheet()->mergeCells('K6:M6');
    $objPHPExcel->getActiveSheet()->mergeCells('B7:D7');
    $objPHPExcel->getActiveSheet()->mergeCells('E7:M7');
    $objPHPExcel->getActiveSheet()->mergeCells('B8:D8');
    $objPHPExcel->getActiveSheet()->mergeCells('E8:M8');
    $objPHPExcel->getActiveSheet()->mergeCells('B9:M10');

    $activeSheet->setCellValue('B6','Site / Project / Object:');
    $activeSheet->setCellValue('E6',$Spo);
    $activeSheet->setCellValue('H6','Contract Number:');
    $activeSheet->setCellValue('K6',$Cont);
    $activeSheet->setCellValue('B7','Site Manager:');
    $activeSheet->setCellValue('E7',$Site);
    $activeSheet->setCellValue('B8','Job / Task Description:');
    $activeSheet->setCellValue('E8',$Job);

    //Observation
    $objPHPExcel->getActiveSheet()->mergeCells('B11:M11');
    $objPHPExcel->getActiveSheet()->mergeCells('B12:E12');
    $objPHPExcel->getActiveSheet()->mergeCells('F12:I12');
    $objPHPExcel->getActiveSheet()->mergeCells('J12:M12');
    $objPHPExcel->getActiveSheet()->mergeCells('B13:E17');
    $objPHPExcel->getActiveSheet()->mergeCells('F13:I17');
    $objPHPExcel->getActiveSheet()->mergeCells('J13:M17');
    $objPHPExcel->getActiveSheet()->mergeCells('B18:M19');  

    $activeSheet->setCellValue('B11','OBSERVATION (areas where improvement can be made).');
    $activeSheet->setCellValue('B12','Brief Description:');
    $activeSheet->setCellValue('B13',$ObBrief);
    $activeSheet->setCellValue('F12','Agreed Action:');
    $activeSheet->setCellValue('F13',$ObAgreed);
    $activeSheet->setCellValue('J12','Close Date:');
    $activeSheet->setCellValue('J13',$ObDate);

    $objPHPExcel->getActiveSheet()->getStyle('B11')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    //Good Practices
    $objPHPExcel->getActiveSheet()->mergeCells('B20:M20');
    $objPHPExcel->getActiveSheet()->mergeCells('B21:E21');
    $objPHPExcel->getActiveSheet()->mergeCells('F21:I21');
    $objPHPExcel->getActiveSheet()->mergeCells('J21:M21');
    $objPHPExcel->getActiveSheet()->mergeCells('B22:E26');
    $objPHPExcel->getActiveSheet()->mergeCells('F22:I26');
    $objPHPExcel->getActiveSheet()->mergeCells('J22:M26');
    $objPHPExcel->getActiveSheet()->mergeCells('B27:M28');

    $activeSheet->setCellValue('B20','GOOD PRACTICES (Commendable acts and actions, Improvements, Innovations etc).');
    $activeSheet->setCellValue('B21','Brief Description:');
    $activeSheet->setCellValue('B22',$GoBrief);
    $activeSheet->setCellValue('F21','Agreed Action:');
    $activeSheet->setCellValue('F22',$GoAgreed);
    $activeSheet->setCellValue('J21','Close Date:');
    $activeSheet->setCellValue('J22',$GoDate);

    $objPHPExcel->getActiveSheet()->getStyle('B20')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    //Feedback Given & Received
    $objPHPExcel->getActiveSheet()->mergeCells('B29:M29');
    $objPHPExcel->getActiveSheet()->mergeCells('B30:E30');
    $objPHPExcel->getActiveSheet()->mergeCells('F30:I30');
    $objPHPExcel->getActiveSheet()->mergeCells('J30:M30');
    $objPHPExcel->getActiveSheet()->mergeCells('B31:E35');
    $objPHPExcel->getActiveSheet()->mergeCells('F31:I35');
    $objPHPExcel->getActiveSheet()->mergeCells('J31:M35');
    $objPHPExcel->getActiveSheet()->mergeCells('B36:M37');

    $activeSheet->setCellValue('B29','FEEDBACK GIVEN & RECEIVED');
    $activeSheet->setCellValue('B30','Brief Description:');
    $activeSheet->setCellValue('B31',$FeBrief);
    $activeSheet->setCellValue('F30','Agreed Action:');
    $activeSheet->setCellValue('F31',$FeAgreed);
    $activeSheet->setCellValue('J30','Close Date:');
    $activeSheet->setCellValue('J31',$FeDate);

    $objPHPExcel->getActiveSheet()->getStyle('B29')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    //General Impression
    $objPHPExcel->getActiveSheet()->mergeCells('B38:M38');
    $objPHPExcel->getActiveSheet()->mergeCells('B39:G39');
    $objPHPExcel->getActiveSheet()->mergeCells('H39:M39');
    $objPHPExcel->getActiveSheet()->mergeCells('B40:G40');
    $objPHPExcel->getActiveSheet()->mergeCells('H40:M40');
    $objPHPExcel->getActiveSheet()->mergeCells('B41:M41');
    $objPHPExcel->getActiveSheet()->mergeCells('B42:K42');
    $objPHPExcel->getActiveSheet()->mergeCells('L42:M42');
    $objPHPExcel->getActiveSheet()->mergeCells('B43:K43');
    $objPHPExcel->getActiveSheet()->mergeCells('L43:M43');
    $objPHPExcel->getActiveSheet()->mergeCells('B44:K44');
    $objPHPExcel->getActiveSheet()->mergeCells('L44:M44');
    $objPHPExcel->getActiveSheet()->mergeCells('B45:K45');
    $objPHPExcel->getActiveSheet()->mergeCells('L45:M45');
    $objPHPExcel->getActiveSheet()->mergeCells('B46:K46');
    $objPHPExcel->getActiveSheet()->mergeCells('L46:M46');
    $objPHPExcel->getActiveSheet()->mergeCells('B47:M47');

    $objPHPExcel->getActiveSheet()->mergeCells('B48:K48');
    $objPHPExcel->getActiveSheet()->mergeCells('L48:M48');
    $objPHPExcel->getActiveSheet()->mergeCells('B49:K49');
    $objPHPExcel->getActiveSheet()->mergeCells('L49:M49');
    $objPHPExcel->getActiveSheet()->mergeCells('B50:K50');
    $objPHPExcel->getActiveSheet()->mergeCells('L50:M50');
    $objPHPExcel->getActiveSheet()->mergeCells('B51:K51');
    $objPHPExcel->getActiveSheet()->mergeCells('L51:M51');
    $objPHPExcel->getActiveSheet()->mergeCells('B52:K52');
    $objPHPExcel->getActiveSheet()->mergeCells('L52:M52');
    $objPHPExcel->getActiveSheet()->mergeCells('B53:M54');

    $activeSheet->setCellValue('B38','GENERAL IMPRESSION');
    $activeSheet->setCellValue('B39','1 = No evidence / poor / no understanding');
    $activeSheet->setCellValue('H39','2 = Some evidence / understanding / not consistent');
    $activeSheet->setCellValue('B40','3 = Requirements in place / basic unerstanding');
    $activeSheet->setCellValue('H40','4 = Detailed understanding / more than minimum standards');

    $objPHPExcel->getActiveSheet()->getStyle('B38')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    $activeSheet->setCellValue('B41','CULTURE');
    $activeSheet->setCellValue('B42','Is the CDP obvious - You Said / We Did Boards; Feedback Stations; Posters?:');
    $activeSheet->setCellValue('L42',$Q1);
    $activeSheet->setCellValue('B43','Are there any Speak Up Coaches on this site?');
    $activeSheet->setCellValue('L43',$Q2);
    $activeSheet->setCellValue('B44','Are Focus Leader meetings happening?:');
    $activeSheet->setCellValue('L44',$Q3);
    $activeSheet->setCellValue('B45','Mention the Mental Tools, do people understand them?:');
    $activeSheet->setCellValue('L45',$Q4);
    $activeSheet->setCellValue('B46','Ask what "Never Harm" means to the teams:');
    $activeSheet->setCellValue('L46',$Q5);

    $objPHPExcel->getActiveSheet()->getStyle('B41')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    $activeSheet->setCellValue('B47','SYSTEM');
    $activeSheet->setCellValue('B48','Are first impressions good, site signage, induction etc?:');
    $activeSheet->setCellValue('L48',$Q6);
    $activeSheet->setCellValue('B49','Is the site tidy, well laid out etc?:');
    $activeSheet->setCellValue('L49',$Q7);
    $activeSheet->setCellValue('B50','Are morning briefings / daily risk assessment carried out?:');
    $activeSheet->setCellValue('L50',$Q8);
    $activeSheet->setCellValue('B51','Have all the team been briefed & signed onto the RAMS?:');
    $activeSheet->setCellValue('L51',$Q9);
    $activeSheet->setCellValue('B52','Ask what they would do if there was a change in the work activity i.e. not in RAMS?:');
    $activeSheet->setCellValue('L52',$Q10);

    $objPHPExcel->getActiveSheet()->getStyle('B47')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    //Comments
    $objPHPExcel->getActiveSheet()->mergeCells('B55:M55');
    $objPHPExcel->getActiveSheet()->mergeCells('B56:M63');
    $objPHPExcel->getActiveSheet()->mergeCells('B64:M65');

    $activeSheet->setCellValue('B55','Additional Comments:');
    $activeSheet->setCellValue('B56',$Add);

    $objPHPExcel->getActiveSheet()->getStyle('B55')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    //Completed By
    $objPHPExcel->getActiveSheet()->mergeCells('B66:M66');
    $objPHPExcel->getActiveSheet()->mergeCells('B67:C67');
    $objPHPExcel->getActiveSheet()->mergeCells('D67:G67');
    $objPHPExcel->getActiveSheet()->mergeCells('H67:I67');
    $objPHPExcel->getActiveSheet()->mergeCells('J67:M67');
    $objPHPExcel->getActiveSheet()->mergeCells('B68:C68');
    $objPHPExcel->getActiveSheet()->mergeCells('D68:G68');
    $objPHPExcel->getActiveSheet()->mergeCells('H68:M68');
    $objPHPExcel->getActiveSheet()->mergeCells('B69:M70');

    $activeSheet->setCellValue('B66','COMPLETED BY');
    $activeSheet->setCellValue('B67','Name:');
    $activeSheet->setCellValue('D67',$Name);
    $activeSheet->setCellValue('H67','Title:');
    $activeSheet->setCellValue('J67',$Title);
    $activeSheet->setCellValue('B68','Date:');
    $activeSheet->setCellValue('BD68',$Date);

    $objPHPExcel->getActiveSheet()->getStyle('B66')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    $objWriter->save('Senior Managers Site Tour.xls');
?>

EDIT (Smaller Example)

<?php
    //Excel Transfer
    $myFile=fopen("DATA/Spo.txt","r") or exit("Can't open file!");
    $Spo = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Cont.txt","r") or exit("Can't open file!");
    $Cont = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Site.txt","r") or exit("Can't open file!");
    $Site = fgets($myFile);
    fclose($myFile);

    $myFile=fopen("DATA/Job.txt","r") or exit("Can't open file!");
    $Job = fgets($myFile);
    fclose($myFile);

    Include_once 'PHP/PHPExcel.php';

    $objPHPExcel = new PHPExcel();
    $activeSheet = $objPHPExcel->getActiveSheet();
    $objPHPExcel->getActiveSheet()->setTitle('Senior Managers Site Tour');
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);

    $styleArray = array(
        'borders' => array(
            'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN
                )
            )
        );  

    //Set Up
    $activeSheet->setCellValue('E1','Senior Managers Site Tour');
    $objPHPExcel->getActiveSheet()->getStyle('A1:N70')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->mergeCells('A1:A70');
    $objPHPExcel->getActiveSheet()->mergeCells('N1:N70');
    $objPHPExcel->getActiveSheet()->getStyle('B6:M68')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);

    //Basic Information
    $objPHPExcel->getActiveSheet()->mergeCells('B6:D6');
    $objPHPExcel->getActiveSheet()->mergeCells('E6:G6');
    $objPHPExcel->getActiveSheet()->mergeCells('H6:J6');
    $objPHPExcel->getActiveSheet()->mergeCells('K6:M6');
    $objPHPExcel->getActiveSheet()->mergeCells('B7:D7');
    $objPHPExcel->getActiveSheet()->mergeCells('E7:M7');
    $objPHPExcel->getActiveSheet()->mergeCells('B8:D8');
    $objPHPExcel->getActiveSheet()->mergeCells('E8:M8');
    $objPHPExcel->getActiveSheet()->mergeCells('B9:M10');

    $activeSheet->setCellValue('B6','Site / Project / Object:');
    $activeSheet->setCellValue('E6', $Spo);
    $activeSheet->setCellValue('H6','Contract Number:');
    $activeSheet->setCellValue('K6',$Cont);
    $activeSheet->setCellValue('B7','Site Manager:');
    $activeSheet->setCellValue('E7',$Site);
    $activeSheet->setCellValue('B8','Job / Task Description:');
    $activeSheet->setCellValue('E8',$Job);

    $objPHPExcel->getActiveSheet()->getStyle('B66')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('D6D6D6');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    $objWriter->save('Senior Managers Site Tour.xls');

?>

Upvotes: 0

Views: 370

Answers (1)

Eduardo Galv&#225;n
Eduardo Galv&#225;n

Reputation: 962

From the fgets documentation:

Returns a string of up to length - 1 bytes read from the file pointed to by handle. If there is no more data to read in the file pointer, then FALSE is returned.

If the file is empty the functions returns false. Include a validation in your code to assign an empty string when the function returns false, like this:

$myFile=fopen("DATA/Spo.txt","r") or exit("Can't open file!");
$Spo = fgets($myFile);
if ($Spo === false) $Spo = '';
fclose($myFile);

And so on for each variable.

Upvotes: 1

Related Questions