Generate and email excel file as an attachment - Error message: unable to read file

匿名 (未验证) 提交于 2019-12-03 02:38:01

问题:

//to genrate EXCEL files require_once('documentation/Excel_Writer/Writer.php');      if($_POST['submit'] == "Email as EXCEL"){        // get values        $dated1=$res_hist[0]['dated'];       $subject1=$res_hist[0]['businesscategory'];       $hisstartdate=$dateto;       $hisenddate=$datefrom;      //format of date//       $date = $hisstartdate;                    $history= date(  "j F Y", strtotime( $date ) );                    $date1 = $hisenddate;                    $history1= date(  "j F Y", strtotime( $date1 ) );         //print_r($date);die;                    $path="businesshistoryxls/";               $workbook = new Spreadsheet_Excel_Writer();             //print_r($workbook);die;             $format_bold =& $workbook->addFormat();             $format_normal =& $workbook->addFormat();             $format_bold->setBold(1);             $format_normal->setBold(0);             $worksheet =& $workbook->addWorksheet();               $worksheet->write(0, 0, "TransactionID", $format_bold);             $worksheet->write(0, 1, "Date", $format_bold);             $worksheet->write(0, 2, "Type", $format_bold);             $worksheet->write(0, 3, "Transaction Details", $format_bold);             $worksheet->write(0, 4, "Currency", $format_bold);             $worksheet->write(0, 5, "Amount", $format_bold);             $worksheet->write(0, 6, "Balance", $format_bold);                $sqlza = "Select * from BUSINESSTRANSACTION where isACTIVE=1 and BusinessID=".$_SESSION['businessID']." order by dated DESC";                   $resza = getXbyY($sqlza, "array");            $rowsza = count($resza);           // print_r($resza);die;             if($rowsza>0)             {             for($i=0;$i<$rowsza;$i++)                 {                     $worksheet->write($i+1, 0, $resza[$i]['transactionID'], $format_bold);                     $worksheet->write($i+1, 1, $resza[$i]['dated'], $format_bold);                     $worksheet->write($i+1, 2, $resza[$i]['transactionTYPE'], $format_bold);                     $worksheet->write($i+1, 3, $resza[$i]['transactionDETAILS'], $format_bold);                     $worksheet->write($i+1, 4, $resza[$i]['currency'], $format_bold);                     $worksheet->write($i+1, 5, $resza[$i]['amount'], $format_bold);                     $worksheet->write($i+1, 6, $resza[$i]['balance'], $format_bold);                    }                 }          $workbook->send($xlsname);          $type=".xls";         $xlsname=$path.''.$hisstartdate.''.to.''.$hisenddate.''.$type;       $email_to = $res_pers[0]['email'];     //print_r($xlsname);die;     $email_from="admin@fastcashier.com";     $email_subject = "Transactions's History";     $headers  = 'MIME-Version: 1.0' . "\r\n";     $headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";     $headers.= 'From:'.$email_from."\r\n";     $email_message="Dear ".$username."<br><br>";     $email_message.="Please check the attachment.<br>";     $email_message .="<br/>";     $email_message .="";     $my_path =$_SERVER['DOCUMENT_ROOT']."/".$xlsname;     //print_r($my_path);die;     mail_attachment($email_from, $email_to, $email_subject, $email_message ,$my_path);     //print_r($mail_attachment);die;     unlink($xlsname);     $msgID=67;              $workbook->close();     unset($_SESSION['Historyb']);     }

can someone help me? this is my code to gererate and email excel sheet but when a got a email. and i opened the attachment the excel sheet prompt with a message that unable to read file. file is only 0kb which was sent..

回答1:

1) i have modified ur piece of code, try using this

        $worksheet->write(0, 0, "TransactionID");         $worksheet->write(1, 0,  $format_bold);         $worksheet->write(0, 1, "Date");         $worksheet->write(1, 1,$format_bold);         $worksheet->write(0, 2, "Type");         $worksheet->write(1, 2, $format_bold);         $worksheet->write(0, 3, "Transaction Details");         $worksheet->write(1, 3, $format_bold);         $worksheet->write(0, 4, "Currency");         $worksheet->write(1, 4, $format_bold);         $worksheet->write(0, 5, "Amount");         $worksheet->write(1, 5, $format_bold);         $worksheet->write(0, 6, "Balance");         $worksheet->write(1, 6, $format_bold);

And according to the above code modify the code inside for loop.

2) "$worksheet =& $workbook->addWorksheet();"

Add some name to your workbooksheet

e.g $workbook = new Spreadsheet_Excel_Writer($excelfillename);



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!