0
//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']);
    }

誰かが私を助けることができますか?これは、Excelシートを生成して電子メールで送信するための私のコードですが、電子メールを受け取ったときです。添付ファイルを開いて、ファイルを読み取れないというメッセージが表示されたExcelシートプロンプトが表示されました。ファイルは送信された0kbのみです。

4

1 に答える 1

1

1)コードを変更しました。これを使用してみてください

        $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);

そして、上記のコードに従って、forループ内のコードを変更します。

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

ワークブックシートに名前を追加します

例:$ workbook = new Spreadsheet_Excel_Writer($ excelfillename);

于 2013-09-11T16:51:25.880 に答える