PHPExcelは正しいXLSファイルを生成していません -- php フィールド と phpexcel フィールド 関連 問題

PHPExcel is not generating correct xls file












1
vote

問題

日本語

私のプロジェクトでPHPEXCELを使用して、データベースから来るデータのXLSファイルを生成しています。私はPhpexcelのライブラリをダウンロードし、PHPクラスでそれを使用して以下のようにそれを使用しました:

<事前> <コード> Class name : A.class.php Path : inside a folder named "inc"; PHPExcel Lib folder : inside "inc" and relative to A.class.php class A{ // code stuff public function phpexcelgenerate() { require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel.php'; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="sam.xlsx"'); header('Cache-Control: max-age=0'); $objPHPExcel = new PHPExcel; $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12"); $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); // This line will force the file to download $writer->save(); } // code stuff }

このコードはXLSファイルを生成していますが、そのファイルは完全に空です。私はPHPEXCELのファイルをPHPクラスで間違った方法で含めたことを考えています。誰かが私が間違っているところや例の例を教えてもらえますか?

英語

I am using PHPExcel in my project to generate a xls file of data coming from the database. I have downloaded the library of PHPExcel and using it in my PHP class as give below :

Class name : A.class.php Path : inside a folder named "inc"; PHPExcel Lib folder : inside "inc" and relative to A.class.php   class A{          // code stuff          public function phpexcelgenerate()         {         require_once 'PHPExcel_1.7.9_doc/Classes/PHPExcel.php';         header('Content-Type: application/vnd.ms-excel');         header('Content-Disposition: attachment;filename="sam.xlsx"');         header('Cache-Control: max-age=0');                       $objPHPExcel = new PHPExcel;         $objPHPExcel->setActiveSheetIndex(0);         $objPHPExcel->getActiveSheet()->SetCellValue('A1', "12");          $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');           // This line will force the file to download             $writer->save();         }         // code stuff         } 

This code is generating a xls file but that file is fully empty. I am thinking that I have included the files of PHPExcel in a wrong way in PHP classes. Could anyone tell me where I am doing wrong OR an example how can I do the same ?

</div
     

回答リスト

2
 
vote
vote
ベストアンサー
 

save() メソッドにファイル名を渡す必要があります。その後、そのファイルの内容を読み、エコーをブラウザに読みます。

<事前> <コード> $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $writer->save("excel.xls"); readfile("excel.xls");
 

You need to pass a filename to the save() method. Then read the contents of that files and echo to the browser.

$writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');   $writer->save("excel.xls"); readfile("excel.xls"); 
</div
 
 
2
 
vote

最初にファイルを読む必要があります。

<事前> <コード> // Read the file $objReader = PHPExcel_IOFactory::createReader(Excel5); $objPHPExcel = $objReader->load($fileName);

DBからデータを取得:

<事前> <コード> //get data $details = $this->main_model->get_details()->row();

はデータを正しいセルに割り当てます。

<事前> <コード> $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $i); $objPHPExcel->getActiveSheet()->setCellValue('B'.$row, $rec->eType);

最後に新しいファイルを書き込みます。

<事前> <コード> header('Content-Type: application/vnd.ms-excel'); //mime type header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name header('Cache-Control: max-age=0'); //no cache $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //force user to download the Excel file without writing it to server's HD $objWriter->save('php://output');
 

first of all you need to read the file:

    // Read the file     $objReader = PHPExcel_IOFactory::createReader(Excel5);     $objPHPExcel = $objReader->load($fileName); 

now get the data from db:

    //get data     $details = $this->main_model->get_details()->row(); 

then assign the data to correct cells:

    $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $i);     $objPHPExcel->getActiveSheet()->setCellValue('B'.$row, $rec->eType); 

at the end write the new file:

    header('Content-Type: application/vnd.ms-excel'); //mime type     header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name     header('Cache-Control: max-age=0'); //no cache      $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');       //force user to download the Excel file without writing it to server's HD     $objWriter->save('php://output'); 
</div
 
 

関連する質問

1  PHPスプレッドシートPREフィルターカラム  ( Php spread sheet pre filtered columns ) 
私は私のスプレッドシートに自動フィルタを首尾よく追加していますが、保存する前にシートにフィルタを適用することです。たとえば、3つの可能な値が3つの可能な値を持つ RetailerID 列があります。 (13, 42, 326) 。 <コード> Retailer...

0  PHPEXCELは.xlsxを読み込めません  ( Phpexcel fails to read xlsx ) 
それで、ExcelファイルをアップロードしてExcelファイルを読み取り、データベースに保存できる形式を持っています。 .xlsファイルをアップロードしたが、.xlsxではなく、問題ありません。これがコード:です <事前> <コード> echo ' File ...

0  Phpexcel ObjectsからのZIPアーカイブの作成  ( Creating zip archive on fly from phpexcel objects ) 
PHPで小さなAPIを開発しています。フライにZIPアーカイブを作成する必要がありますが、コンテンツ(ファイル)もPhpexcelライブラリと飛ぶことに登録されています。 ...

0  phpexcel私のXLSファイルを読んではいけない  ( Phpexcel dont read my xls file ) 
ファイルXLSをロードするときは、常にテキストを表示します。私はこれをすべて実行しますðï <コード> $ aSheet = $ objPHPExcel-> getActiveSheet (); 外部ファイルからのデータがないのは何をすべきか? 私のコー...

0  PHPEXCEL次の列のデータに値を追加します  ( Phpexcel append values to data in next available columns ) 
すでにデータがインポートされているシート内の次のセルの行の最後にデータを追加することについてどのようにしていきますか。 <事前> <コード> $reader = PHPExcel_IOFactory::createReader( 'CSV' )->setDe...

1  phpexcel freezepane()列がウィンドウに収まらない場合は水平方向にスクロールすることは不可能になります。  ( Phpexcel freezepane makes it impossible to scroll horizontally if columns does ) 
スクロールしたい最初の6行と "Infinite"列を凍結する必要がありますが、Phpexcelクラスでできるのはすべて選択されたセルとその下の行の後にスクロール列です。 セルを選択することでMS Excelで達成することを行っています(t7を参照してくださ...

6  Phpexcel Libraryを使用して、Size 70MBでExcelファイルをインポートおよびエクスポートすることは可能ですか?  ( Is it possible to import and export excel file with size 70mb using phpexcel lib ) 
2列のExcelファイルを1つ持て、2列の列に電子メールハイパーリンクが含まれています。だから私はこのファイルをインポートして2列目だけでそれをエクスポートする必要があり、名前と2番目の電子メールは、そのハイパーリンクを名前と電子メールに分割する必要がありま...

0  PhpexcelのCSVにワークシートのワークシートをエクスポートする  ( Export worksheets in a workbook to csv in phpexcel ) 
Excel 2007ワークブックにワークシートをCSVにエクスポートし、ワークシート名としてCSVを保存しようとしています。このエラーが発生し続けます: <事前> <コード> "Object of class PHPExcel_Worksheet could...

13  Phpexcelを入手するには、電話番号で最先端の0を維持し続けるのですか?  ( How to get phpexcel to keep leading 0s in phone numbers ) 
ここに私がセル値を設定するために私が使用しているコードです。番号に区切り文字がある場合は大丈夫です。または/が区切り記号がない場合は、intとして保存され、先頭の0がストリップ <事前> <コード> $sheet->setCellValue($letter[$...

1  Phpexcelの値からのセルのアドレスを取得します  ( Getting cells address from value in phpexcel ) 
PHPEXCELライブラリを使用してExcelファイルを読み、処理を実行します。 CellAddressのフェッチに関していくつかの疑問があります。 Excelのサンプル: ID |名前|年齢 191 |売り手| 25 192 |購入者| 69...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有