あるところでビジネスライセンス管理システムを開発する際、データをエクセルファイルにエクスポートする必要があるのですが、1年前に某グループのERPをやっていた時に一度インポートとエクスポートを利用したのですが、その時は忙しすぎてしまいました。ブログを書くのに何年も経ち、ほとんど忘れていたので、使用するときに情報をエクスポートしたり検索したりする必要がないように、今後の開発の参考としてこの使用法をブログに書きたいと思います。もう一度、そして他の同僚に参考にしてもらうためにも。著者: DragonDean、ブログアドレス: http://www.cnblogs.com/dragondean/
PHPExcel は、Office Excel ドキュメントを操作するために使用される PHP クラス ライブラリであり、Microsoft の OpenXML 標準と PHP 言語に基づいています。これを使用すると、Excel (BIFF) .xls、Excel 2007 (OfficeOpenXML) .xlsx、CSV、Libre/OpenOffice Calc .ods、Gnumeric、PDF、HTML など、さまざまな形式のスプレッドシートの読み取りと書き込みができます。
phpexcel の公式 Web サイトのアドレスは http://phpexcel.codeplex.com/ で、そこから必要なファイルをダウンロードできます。バージョン1.8をダウンロードしました。ダウンロード後、Web サイトのルート ディレクトリに解凍します。
この開発では、ThinkPHP フレームワークを使用して、クエリ条件に基づいてすべてのコンテンツをエクスポートします。インポート機能もあるので、それについてはまた記事にします。詳しい手順については、コードセクションのコメントを参照してください。
to
to
//エクスポートする必要があるデータをデータベースから取得します
$list=$db->where($where)->select();
//最初の行はテーブルヘッダーであるため、foreach を使用して 2 行目からデータの書き込みを開始します
$i=2;
foreach($list as $val){
$phpexcel->getActiveSheet() ->setCellValue('A'.$i,'吉'.$val['czz_nian'].$val['czz_hao'])
; -& Gt; SetcellValue ('b'. $ I, $ value ['danwei'])
; -& Gt; SetcellValue ('c'. $ I, $ value ['faren'])
; -& Gt; SetcellValue ('d'. $ I, $ value ['dz_chengshi'])
; -& Gt; SetcellValue ('e'.$ I, $ valr ['dz_dique'])
; -& Gt; SetcellValue ('f'. $ I, $ value ['dizhi'])
; -& Gt; SetcellValue ('g'. $ I, $ value ['leibie'])
; -& Gt; SetcellValue ('h'. $ I, $ 値 ['beizhu'])
~
️ ->setCellValue('J'.$i, $val['qs_nian'].'-'.$val['qs_yue'].'-'.$val['qs_ri'])
️ ->setCellValue('K'.$i, $val['zz_nian'].'-'.$val['zz_yue'].'-'.$val['zz_ri'])
; -& Gt; SetcellValue ('l'. $ I, $ value ['anquan'])
- > setcellvalue( 'm'。$ i、$ val ['zhizheng'])
️ ->setCellValue('N'.$i, $val['fz_nian'].'-'.$val['fz_yue'].'-'.$val['fz_ri'])
; -& Gt; SetcellValue ('o'. $ I, $ value ['dianhua'])
to
; -& Gt; SetcellValue ('q'. $ I, $ value ['renshu'])
~
; -& Gt; SetcellValue ('s'. $ I, $ value ['chizheng'])
; -& Gt; $ I, $ value ['keshi'];
$i++;
}
$obj_Writer = PHPExcel_IOFactory::createWriter($phpexcel,'Excel5');
$filename ='Export'.date('Y-m-d').".xls";//ファイル名
//ヘッダーを設定します
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: アプリケーション/ダウンロード");
header('Content-Disposition:inline;filename="'.$filename.'"');
header("コンテンツ転送エンコーディング: バイナリ");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("キャッシュ制御: 再検証が必要、事後チェック = 0、事前チェック = 0");
header("プラグマ: キャッシュなし");
$obj_Writer->save('php://output');//出力
die();//植栽実行
コードをコピー
エクスポートされたファイルのプレビュー:
その他の関連する属性設定のリファレンス (オンライン情報より)
コードをコピー
//基本的なドキュメントのプロパティを設定します
$objProps = $phpexcel->getProperties();
$objProps->setCreator("張公区医療保険局");
$objProps->setLastModifiedBy("張公区医療保険局");
$objProps->setTitle("張公区医療保険局職員月次増減報告書");
$objProps->setSubject("張公区医療保険局職員月次増減報告");
$objProps->setDescription("張公区医療保険局職員月次増減報告書");
$objProps->setKeywords("張公区医療保険局職員月次増減報告");
$objProps->setCategory("変更レポート");
コードをコピー
PHPExcelでセルを結合/分離する方法
$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
$objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');
PHPExcelで列幅/行高さを設定する方法
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
$objPHPExcel->getActiveSheet()->getRowDimension(3)->setRowHeight(16);
PHPExcelでスタイルを設定する方法
コードをコピー
$objStyleA1 = $phpexcel->getActiveSheet()->getStyle('A1');
$objStyleA1->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平軸を設定します
$objStyleA1->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直方向の配置を設定します
$objFontA1 = $objStyleA1->getFont();
$objFontA1->setName('宋体');
$objFontA1->setSize(18); $objFontA1->setBold(true);
コードをコピー
PHPExcelで枠線を設定する方法
コードをコピー
$objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');//境界線を設定するカラー
コードをコピー
詳細については、Baidu を検索してください。ご質問がある場合は、修正してください。
http://www.bkjia.com/PHPjc/905597.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/905597.html
技術記事
PHPExcelを使ってデータをExcelファイルにエクスポートする とあるところで業務用ライセンス管理システムを開発する際、データをExcelファイルにエクスポートする必要があります。 ..