Phpexcelは非常に強力なMS Office Excel Document Class Class Libraryです。比較的複雑な形式データを出力する必要がある場合、PHPExcelが適切な選択です。ただし、その使用法は比較的複雑です。記録するためにそれをリストします。
コードコピーは次のとおりです。
<?
// phpexcelクラスライブラリのincludeを設定します
set_include_path( '。'。path_separator。
'd:/zeal/php_libs'。 path_separator。
get_include_path());
/**
*以下は使用の例です。 ////から始まる行の場合、異なるオプションの方法があります。実際のニーズに応じてそれらを使用してください。
*対応する行のコメントを開きます。
* Excel5を使用する場合、出力はGBKエンコードされている必要があります。
*/
require_once 'phpexcel.php';
// uncomment
/// require_once 'phpexcel/writer/excel5.php'; // XLSの他の下位バージョンに使用されます
// または
/// require_once 'phpexcel/writer/excel2007.php'; // Excel-2007形式の場合
//処理オブジェクトインスタンスを作成します
$ objexcel = new Phpexcel();
//ファイル形式を作成して、オブジェクトインスタンスを書き込み、conemmentを書き込みます
/// $ objwriter = new phpexcel_writer_excel5($ objexcel); //他のバージョン形式に使用されます
// または
/// $ objwriter = new phpexcel_writer_excel2007($ objexcel); // 2007年の形式
// $ objwriter-> setoffice2003Compativebulive(true);
// ***********************************************************
//基本的なドキュメントプロパティを設定します
$ objprops = $ objexcel-> getProperties();
$ objprops-> setcreator( "zeal li");
$ objprops-> setLastModifiedBy( "Zeal Li");
$ objprops-> settitle( "Office XLSテストドキュメント");
$ objprops-> setSubject( "Office XLS Test Document、Demo");
$ objProps-> setDescription( "PHPExcelによって生成されたテストドキュメント。");
$ objprops-> setKeyWords( "Office Excel Phpexcel");
$ objprops-> setCategory( "test");
// ***********************************************************
//後続のコンテンツ操作のために現在のシートインデックスを設定します。
//一般的に、複数のシートが使用される場合にのみ、呼び出しが必要です。
//デフォルトでは、PHPEXCELが最初のシートを自動的に作成し、SheetIndex = 0を設定します
$ objexcel-> setActiveSheetIndex(0);
$ objactsheet = $ objexcel-> getActiveSheet();
//現在のアクティブシートの名前を設定します
$ objactsheet-> settitle( 'Test Sheet');
// ***********************************************************
//セルコンテンツを設定します
//
// phpexcelは、着信コンテンツに基づいてセルコンテンツタイプを自動的に決定します
$ objactsheet-> setCellValue( 'a1'、 'string content'); //文字列コンテンツ
$ objactsheet-> setCellValue( 'a2'、26); // 価値
$ objactsheet-> setCellValue( 'a3'、true); // boolean値
$ objactsheet-> setCellValue( 'a4'、 '= sum(a2:a2)'); // 式
//説明コンテンツタイプを指定します
$ objactsheet-> setCellValueExplicit( 'a5'、 '847475847857487584'、
phpexcel_cell_datatype :: type_string);
//セルをマージします
$ objactsheet-> mergecells( 'b1:c22');
//別々のセル
$ objactsheet-> unmergecells( 'b1:c22');
// ***********************************************************
//セルスタイルを設定します
//
//幅を設定します
$ objactsheet-> getColumnDimension( 'b') - > setautosize(true);
$ objactsheet-> getColumnDimension( 'a') - > setWidth(30);
$ objstylea5 = $ objactsheet-> getStyle( 'a5');
//セルコンテンツの数値形式を設定します。
//
// phpexcel_writer_excel5を使用してコンテンツを生成する場合、
//ここでは、phpexcel_style_numberformatクラスで定義されているconst変数に注意してください
//さまざまなカスタムフォーマットメソッドの中で、他のタイプは正常に使用できますが、setformatcodeの場合
// format_numberの場合、実際の効果は「0」に設定されていません。必要
// phpexcel_writer_excel5_formatクラスのソースコードでgetXf($ style)メソッドを変更します。
//前に1つを追加するif($ this-> _ biff_version == 0x0500){(363行の近く)
//行コード:
// if($ ifmt === '0')$ ifmt = 1;
//
//フォーマットをphpexcel_style_numberformat :: format_numberに設定して、多数を避けます
//科学カウント方法を使用して表示されます。次のSetAutosizeメソッドと併せて、各ラインの内容を作成できます
//すべてが元のコンテンツに従って表示されます。
$ objstylea5
- > getNumberFormat()
- > setFormatCode(phpexcel_style_numberformat :: format_number);
//フォントを設定します
$ objfonta5 = $ objstylea5-> getFont();
$ objfonta5-> setName( 'Courier new');
$ objfonta5-> setSize(10);
$ objfonta5-> setbold(true);
$ objfonta5-> setunderline(phpexcel_style_font :: underline_single);
$ objfonta5-> getColor() - > setargb( 'ff9999999');
//アライメントを設定します
$ objaligna5 = $ objstylea5-> getAlignment();
$ objaligna5-> sethorizontal(phpexcel_style_alignment :: horizontal_right);
$ objaligna5-> setvertical(phpexcel_style_alignment :: vertical_center);
//ボーダーを設定します
$ objbordera5 = $ objstylea5-> getBorders();
$ objbordera5-> getTop() - > setBorderStyle(phpexcel_style_border :: border_thin);
$ objbordera5-> getTop() - > getColor() - > setArgb( 'ffff0000'); // 色
$ objbordera5-> getBottom() - > setBorderStyle(phpexcel_style_border :: border_thin);
$ objbordera5-> getLeft() - > setBorderStyle(phpexcel_style_border :: border_thin);
$ objbordera5-> getRight() - > setBorderStyle(phpexcel_style_border :: border_thin);
//塗りつぶしの色を設定します
$ objfilla5 = $ objstylea5-> getFill();
$ objfilla5-> setfilltype(phpexcel_style_fill :: fill_solid);
$ objfilla5-> getStartColor() - > setargb( 'ffeeeee');
//指定されたセルからスタイル情報をコピーします。
$ objactsheet-> duplicatestyle($ objstylea5、 'b1:c22');
// ***********************************************************
//写真を追加します
$ objdrawing = new phpexcel_worksheet_drawing();
$ objdrawing-> setName( 'zealimg');
$ objdrawing-> setDescription( 'Zealによって挿入された画像');
$ objdrawing-> setPath( './ zeali.net.logo.gif');
$ objdrawing-> setheight(36);
$ objdrawing-> setCoordinates( 'c23');
$ objdrawing-> setOffsetx(10);
$ objdrawing-> setrotation(15);
$ objdrawing-> getshadow() - > setVisible(true);
$ objdrawing-> getshadow() - > setDirection(36);
$ objdrawing-> setworksheet($ objactsheet);
//新しいワークシートを追加します
$ objexcel-> createsheet();
$ objexcel-> getsheet(1) - > settitle( 'Test 2');
//セルを保護します
$ objexcel-> getSheet(1) - > getProtection() - > setSheet(true);
$ objexcel-> getSheet(1) - > protectcells( 'a1:c22'、 'phpexcel');
// ***********************************************************
//出力コンテンツ
//
$ outputFileName = "output.xls";
//ファイルする
/// $ objwriter-> save($ outputFileName);
//または
//ブラウザへ
//// header( "content-type:application/force-download");
//// header( "content-type:application/octet-stream");
//// header( "content-type:application/download");
////header('content-disposition:inline;filename="'. $ outputfileName。 '"');
//// header( "Content-Transfer-Encoding:binary");
////ヘッダー( "期限切れ:月、1997年7月26日05:00:00 GMT");
//// header( "last-modified:"。gmdate( "d、d myh:i:s")。 "gmt");
//// header( "Cache-Control:必須の再評価、Post-Check = 0、Pre-Check = 0");
////ヘッダー( "Pragma:no-cache");
/// $ objwriter-> save( 'php:// output');
?>