在PHPExcel

时间:2016-10-11 13:10:03

标签: php excel

我目前正在使用isset获取登录用户的用户名,以便将Excel文档保存到我的站点目录中的那个区域。现在我也使用第二个isset进行加密,因此用户不能简单地更改用户名isset并将文件保存到其他人的目录,除非他们知道他们的加密密钥以及每天或按下时更改。现在,当我尝试收到错误消息时,现在我不确定是否isset无法使用它或者是否是创建文档的文档源文件。任何人对如何解决这个问题都有任何想法?

错误

  

警告:fopen(USERS /".$用户名。“/ Documents / DocName.xls)   [function.fopen]:无法打开流:没有这样的文件或目录   第90行的public_html / Site / PHP / PHPExcel / Shared / OLE / PPS / Root.php

     

致命错误:未捕获异常'PHPExcel_Writer_Exception'   消息'无法打开USERS /".$用户名。“/ Documents / DocName.xls。有可能   正在使用或受到保护。在   /public_html/Site/PHP/PHPExcel/Shared/OLE/PPS/Root.php:93堆栈跟踪:   0 /public_html/Site/PHP/PHPExcel/Writer/Excel5.php(226):PHPExcel_Shared_OLE_PPS_Root-> save('USERS /".$ Userna ...')#1   /public_html/Site/Create.php(124):   PHPExcel_Writer_Excel5-> save('USERS /".$ Userna ...')#2 {main}抛出   第93行/public_html/SitePHP/PHPExcel/Shared/OLE/PPS/Root.php

PHP

<?php
if (isset($_GET['logout'])){
    session_destroy();  
    header("Location: index.php");
    exit(); 
}
else{
    if (isset($_GET['Username'])){  
        if (isset($_GET['Encryption'])){    
            $Username = $_GET['Username'];
            $Encryption = $_GET['Encryption'];

            if (is_dir("USERS/".$Username) === true) {
                if($Encryption == file_get_contents("USERS/".$Username."/Encryption.txt")){
                    $NoOfDocs = file_get_contents("USERS/".$Username."/NoOfDocuments.txt"); 
                }
                else{
                    header("Location: 201Error.php");exit();    
                }
            }   
            else{
                header("Location: 201Error.php");exit();    
            }
        }
    }
}

//Excel Transfer
    $myFile=fopen("USERS/".$Username."/RiskAssessment/A1.txt","r") or exit("Can't open file!");
    $A1 = fgets($myFile);
    if ($Spo === false) $A1 = '';
    fclose($myFile);

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

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

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

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

    $Date = date("d/m/Y");


    Include_once 'PHP/PHPExcel.php';

    $objPHPExcel = new PHPExcel();
    $activeSheet = $objPHPExcel->getActiveSheet();
    $objPHPExcel->getActiveSheet()->setTitle('Risk Assessment');

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

//Set Up
    $activeSheet->setCellValue('A1','Risk Assessment');
    $activeSheet->setCellValue('F1',$Date);
    $objPHPExcel->getActiveSheet()->mergeCells('A1:E1');
    $objPHPExcel->getActiveSheet()->mergeCells('F1:I1');

//Title 
    $title = array(
        'font'  => array(
            'bold'  => true,
            'size'  => 32,
        ));

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

    $objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($title);

//Basic Information
    $objPHPExcel->getActiveSheet()->mergeCells('B2:D2');
    $objPHPExcel->getActiveSheet()->mergeCells('A3:I3');
    $objPHPExcel->getActiveSheet()->mergeCells('A4:I4');
    $objPHPExcel->getActiveSheet()->mergeCells('A5:I5');
    $objPHPExcel->getActiveSheet()->mergeCells('A6:I6');
    $objPHPExcel->getActiveSheet()->mergeCells('A7:I7');
    $objPHPExcel->getActiveSheet()->mergeCells('A8:I8');
    $objPHPExcel->getActiveSheet()->mergeCells('A9:I9');
    $objPHPExcel->getActiveSheet()->mergeCells('A10:I10');
    $objPHPExcel->getActiveSheet()->mergeCells('F11:G11');
    $objPHPExcel->getActiveSheet()->mergeCells('H11:I111');
    $objPHPExcel->getActiveSheet()->mergeCells('F12:G12');
    $objPHPExcel->getActiveSheet()->mergeCells('H13:I13');

    $activeSheet->setCellValue('B2','Risk No.1');
    $activeSheet->setCellValue('A3','What are the hazards?');
    $activeSheet->setCellValue('A4', $A1);
    $activeSheet->setCellValue('A5','What are you already doing?');
    $activeSheet->setCellValue('A6',$A2);
    $activeSheet->setCellValue('A7','Do you need to do anything else to control this risk?');
    $activeSheet->setCellValue('A8',$A3);
    $activeSheet->setCellValue('A9','Action by who?');
    $activeSheet->setCellValue('A10',$A4);
    $activeSheet->setCellValue('F11','Action by when?');
    $activeSheet->setCellValue('F12',$A5);
    $activeSheet->setCellValue('H11','Done');
    $activeSheet->setCellValue('H12',$A6);

//Document Settings
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    $objWriter->save('USERS/".$Username."/RiskAssessment/Risk_Assessment.xls');
?>

1 个答案:

答案 0 :(得分:1)

更改此行

$objWriter->save('USERS/".$Username."/RiskAssessment/Risk_Assessment.xls');

到这个

$objWriter->save("USERS/".$Username."/RiskAssessment/Risk_Assessment.xls");

或者这个

$objWriter->save('USERS/'.$Username.'/RiskAssessment/Risk_Assessment.xls');

或者这个

$objWriter->save("USERS/$Username/RiskAssessment/Risk_Assessment.xls");

注意引号。