まず、phpexcel 公式 Web サイトにアクセスして、最新の phpexcel クラスをダウンロードします。次の週に、PHPExcel.php フォルダーと PHPExcel フォルダーが含まれるクラス フォルダーを解凍します。 、クラスをプロジェクトのディレクトリに解凍し、名前を phpexcel に変更します。始めましょう (コードはすべて含まれているサンプルから取得したものです)
プログラム部分
require_once './phpexcel/PHPExcel.php';
// まず新しいオブジェクトを作成します
PHPExcelオブジェクト
$objPHPExcel =newPHPExcel();
//これらの値は、xls ファイル->プロパティ->詳細で確認できます。xml テーブルにはこれらの値はありません。
$objPHPExcel
—>setCreator( "マーテン
balliauw ")
;-& Gt; Setlastmodifydby ( "マーテン
balliauw ")
—>setTitle( ”オフィス
2007年
—>setSubject( ”オフィス
2007年
—>setDescription( "テスト
PHP クラスを使用して生成された、Office 2007 XLSX 用のドキュメント。")//メモを設定します
—>setKeywords( "オフィス
2007 openxml php") //タグを設定します
可能性があります
結果ファイル");
//位置 aaa *以下のコードの場所のアンカーを提供します
//テーブルにデータを追加します
$ objphpexcel-> setactivesheetindex(0)
と
//テーブルのセルにデータを設定します
//データ形式は文字列にすることができます
; -≫
12)
️ with with with ->setCellValue( 'D2',
12)
with with with //ブール型
; -& Gt; SetcellValue ( 'd4', '= 合計 (C1: D2)' );
//現在アクティブなテーブルを取得します以下のチュートリアルでは $objActSheet が頻繁に使用されることに注意してください
$objActSheet = $objPHPExcel->getActiveSheet();
// 場所 bbb *以下のコードの場所のアンカーを提供します
//現在アクティブなテーブルに名前を設定します
$objActSheet->setTitle('Simple2222');
コードはまだ終わっていません。以下のコードをコピーして、何をするかを決定できます
私たちがやろうとしていることは
1、ファイルを直接生成します
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('myexchel.xlsx');
2. ファイルのダウンロードを促す
エクセル2003.xls
// 2003Excel形式のxlsファイルを生成します
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="01simple.xls"');
header('キャッシュ制御: max-age=0');
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
終了;
エクセル 2007 .xlsx
// 2007 Excel 形式で xlsx ファイルを生成します
header('Content-Type:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition:
添付ファイル;ファイル名="01simple.xlsx"');
header('キャッシュ制御:
max-age=0');
$objWriter=
PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');
終了;
pdfファイル
//PDF ファイルをダウンロード
header('Content-Type:
アプリケーション/pdf');
header('Content-Disposition:
添付ファイル;ファイル名="01simple.pdf"');
header('キャッシュ制御:
max-age=0');
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
終了;
// PDF ファイルを生成します
$objライター
= PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('a.pdf');
CSVファイル
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter( ' 、)
//区切り文字を設定します
->setEnclosure('"' ) //エンクロージャを設定します
->setLineEnding("rn" )//行区切り文字を設定します
->setSheetIndex(0) //アクティビティシートを設定します
->save(str_replace('.php','.csv',
__ファイル__));
HTMLファイル
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML'); $objPHPEcel オブジェクトを HTML 形式に変換します
$objWriter->setSheetIndex(0); //アクティビティシートを設定します
//$objWriter->setImagesRoot('http://www.example.com');
$objWriter->save(str_replace(('.php', '.htm',
__FILE__)); //ファイルを保存します
テーブルのスタイルとデータ形式を設定します
デフォルトのフォントとテキストサイズを設定しますアンカー: aaa
$objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(20);
日付形式アンカー: bbb
//2番目の値変数を取得します
$dateTimeNow = time();
//3 つのテーブルは、現在の実際の日付形式、時刻形式、日付と時刻の形式に設定されます
//まずセルの値をPHPExcel_Shared_Date::PHPToExcelメソッドで変換したExcel形式の値に設定し、次に数値スタイルを使用してセルのスタイルを取得し、表示形式を設定します
$objActSheet->setCellValue( 'C9',
PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
$objActSheet->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat:) FORMAT_DATE_YYYYMMDD2 );
$objActSheet->setCellValue( 'C10',
PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
$objActSheet->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat:: FORMAT_DATE_TIME4 );
$objActSheet->setCellValue( 'C10',
PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
$objActSheet->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat:: FORMAT_DATE_TIME4 );
//E4 から E13 までの数値形式を EUR に設定します
$objPHPExcel->getActiveSheet()->getStyle( 'E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_ NumberFormat:: FORMAT_CURRENCY_EUR_SIMPLE);
列幅を設定します アンカー: bbb
$objActSheet->getColumnDimension( 'B')->setAutoSize(true) ; //からのコンテンツ適応する
$objActSheet->getColumnDimension( 'A')->setWidth(30);
//幅30
ファイル印刷用のヘッダーとフッターを設定します アンカー: bbb
//印刷時にヘッダーとフッターを設定します(設定後の印刷プレビューで効果を確認できます) 文字列内の&*は変数のようです
$objActSheet->getHeaderFooter()->setOddHeader( '&L&G&C&Hお願いします
この文書は機密として扱ってください!');
$objActSheet->getHeaderFooter()->setOddFooter( '&L&B' .
$objPHPExcel->getProperties()->getTitle() . '&RPページ &N' );
ページテキストの方向とページサイズを設定します アンカー: bbb
$objPHPE );
$ $ objphpexcel-> getActiveSheet() - > getPagesEtup() - > setPapersize(phpexcel_worksheet_pagesetup::
//A4用紙サイズ
ヘッダーに写真を追加
Office では有効、WPS では無効 アンカー: bbb
$objDrawing =new
PHPExcel_Worksheet_HeaderFooterDrawing();
$objDrawing->setName('PHPExcelロゴ');
$objDrawing->setPath('./images/phpexcel_logo.gif');
$objDrawing->setHeight(36);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing,
PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT );
セルのコメントを設定する アンカー: bbb
//セルにコメントを追加します
$objPHPExcel->getActiveSheet()->getComment( 'E13')->setAuthor(
'PHPExcel' ) ); //作成者を設定します
$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun( ' PHPExcel:'); //コメントを追加
$objCommentRichText->getFont()->setBold( true); //既存のコメントを太字にします
$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun("rn" ); //コメントを追加
$objPHPExcel->getActiveSheet()->getComment( 'E13')->getText()->createTextRun('Total
VAT を含む現在の請求書の金額。');
$objPHPExcel->getActiveSheet()->getComment( 'E13')->setWidth('100pt' ); //注釈表示の幅と高さを設定します
、office では有効ですが、wps では無効です
$objPHPExcel->getActiveSheet()->getComment( 'E13')->setHeight('100pt' );
$objPHPExcel->getActiveSheet()->getComment( 'E13')->setMarginLeft('150pt') );
$objPHPExcel->getActiveSheet()->getComment( 'E13')->getFillColor()->setRGB('ええええ ); //背景色を設定します
、office では有効ですが、wps では無効です
テキストブロックを追加 レンダリングを見る オフィスで有効
WPS では無効です アンカー: bbb
//おおよその翻訳 リッチ テキスト ボックスを作成します Office が有効です WPS が無効です
$objRichText =newPHPExcel_RichText();
$objRichText->createText('この請求書は ');
//テキストを追加し、このテキストの太字斜体とテキストの色を設定します
$objPayable = $objRichText->createTextRun( '支払い可能
月末から 30 日以内');
$objPayable->getFont()->setBold( true);
$objPayable->getFont()->setItalic( true);
$objPayable->getFont()->setColor( new PHPExcel_Style_Color(
PHPExcel_Style_Color::COLOR_DARKGREEN )
);
$objRichText->createText('、特に指定がない限り
請求書。');
//セルA18にテキストを書き込みます
$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText);
分割セルを結合
アンカー: bbb
$objPHPExcel->getActiveSheet()->mergeCells( 'A28:B28');
A28:B28マージ
$objPHPExcel->getActiveSheet()->unmergeCells( 'A28:B28');
A28:B28がまた分裂
携帯パスワード保護 アンカー: bbb
// セルのパスワード保護により変更は許可されません
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
テーブル保護を有効にするには、true に設定する必要があります
$objPHPExcel->getActiveSheet()->protectCells( 'A3:E13', 'PHPExcel' ); //
A3からE13までを保護します。暗号化パスワードはPHPExcelです。
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getProtection()->setLocked(PHPExcel_Style_Protection :: PROTECTION_UNPROTECTED);//保護を解除します
セルのフォントを設定するアンカー: bbb
//B1の文字フォントをCandaraに設定し、サイズ20の太字下線に背景色を付けます
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getFont()->setName('Candara') );
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getFont()->setSize(20);
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getFont()->setBold(true );
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getFont()->setUnderline(PHPExcel_Style_Font:: UNDERLINE_SINGLE);
$objPHPExcel->getActiveSheet()->getStyle( 'B1')->getFont()->getColor()->setARGB(PHPExcel_Style _Color : :COLOR_WHITE);
テキストの配置 アンカー: bbb
$objPHPExcel->getActiveSheet()->getStyle( 'D11')->getAlignment()->set水平(PHPExcel_Style_Alignment:: HORIZONTAL_RIGHT); //水平方向に整列します
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->set水平( Excel_Style_Alignment:: HORIZONTAL_JUSTIFY);//両端を水平方向に揃えます
$objPHPExcel->getActiveSheet()->getStyle( 'A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment :: VERTICAL_CENTER); //垂直方向の中央揃え
セルの境界線を設定するアンカー: bbb
$styleThinBlackBorderOutline = array(
または 'ボーダー' = & gt;
PHPExcel_Style_Border::BORDER_THIN, //枠線のスタイルを設定します
PHPExcel_Style_Border::BORDER_THICK、別のスタイル
'argb' => ' FF000000')、
//境界線の色を設定します
)、
)、
);
$objPHPExcel->getActiveSheet()->getStyle( 'A4:E10')->applyFromArray($styleThinBlackBorderOutline);
背景の塗りつぶしの色 アンカー: bbb
//塗りつぶしスタイルと背景色を設定します
$objPHPExcel->getActiveSheet()->getStyle( 'A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill:: FILL_SOLID );
$objPHPExcel->getActiveSheet()->getStyle( 'A1:E1')->getFill()->getStartColor()->setARGB('FF808 080 ');
综合设置样例
$objPHPExcel->getActiveSheet()->getStyle( 'A3:E3')->applyFromArray(
array(
'font' => array (
'bold' => true
),
'alignment' => array (
'horizontal' =>
PHPExcel_Style_Alignment::HORIZONTAL_RIGHT ,
),
'borders' => array (
'top' => array (
'style' =>
PHPExcel_Style_Border::BORDER_THIN
)
),
'fill' => array (
'type' =>
PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR ,
'rotation' =>
90,
'startcolor' => array(
(
)
)
);
セルのコンテンツへの URL ハイパーリンクを設定します アンカー: bbb
$objActSheet->getCell('E26')->getHyperlink()->setUrl('http://www.エクセル。 net'); //ハイパーリンク URL アドレス
$objActSheet->getCell('E26'
)->getHyperlink()->setTooltip(
'Navigate
ウェブサイトへ'); //マウスを上に移動してプロンプトメッセージに接続します
テーブルに写真を追加します アンカー: bbb
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('有料');
$objDrawing->setDescription('有料');
$objDrawing->setPath('./images/paid.png'); //画像インポート位置
$objDrawing->setCooperatives('B15'); //画像の位置を追加
$objDrawing->setOffsetX(210);
$objDrawing->setRotation(25);
$objDrawing->setHeight(36);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
//gd ライブラリによって生成された画像を追加することもできます。詳細については、組み込みの例 25 を参照してください
新しいワークシートを作成し、ワークシートのラベルの色を設定します アンカー: bbb
$objExcel->createSheet();
$objPHPExcel->setActiveSheetIndex(1); // 2 番目のテーブルをアクティブなテーブルとして設定し、操作ハンドルを提供します
$objExcel->getSheet(1)->setTitle( 'テスト 2');
//設定用に 2 番目のテーブルを直接取得し、ワークシートの名前を test 2 に変更します
$objPHPExcel->getActiveSheet()->getTabColor()->setARGB( 'FF0094FF');
//ラベルの色を設定します
行と列を追加または削除します アンカー: bbb
$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10); // 6 行目の前に 10 行追加します
$objPHPExcel->getActiveSheet()->removeRow(6, 10);
$objPHPExcel->getActiveSheet()->insertNewColumnBefore( 'E',
5); //列 E の前から 5 つのカテゴリを追加します
$objPHPExcel->getActiveSheet()->removeColumn( 'E',
5); // E 列から 5 列を削除します
列を非表示にして表示します
アンカー: bbb
$objPHPExcel->getActiveSheet()->getColumnDimension( 'C')->setVisible(false ) ); //非表示
$objPHPExcel->getActiveSheet()->getColumnDimension( 'D')->setVisible(true) ;
アクティブなテーブルのラベル名を変更します アンカー: bbb
$objPHPExcel->getActiveSheet()->setTitle( '請求書');
ワークシートのセキュリティを設定する
$objPHPExcel->getActiveSheet()->getProtection()->setPassword( 'PHPExcel');
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); //
次のいずれかを有効にするには、これを有効にする必要があります!
$objPHPExcel->getActiveSheet()->getProtection()->setSort( true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
ドキュメントのセキュリティを設定する アンカー: bbb
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure( true);
$objPHPExcel->getSecurity()->setWorkbookPassword( "PHPExcel");
スタイルコピー アンカー: bbb
//B2のスタイルをB3、B7にコピーします
$objPHPExcel->getActiveSheet()->duplicateConditionalStyle()
H $ Objphpexcel-& GT; getActiveSheet ()-& gt; getstyle ('b2')、;
条件付き書式を追加します アンカー: bbb
echodate(
'H:i:s')
," 条件付き書式を追加します", PHP_EOL;
$objConditional1 = new PHPExcel_Style_Conditional ();
$objConditional1->setConditionType(PHPExcel_Style_Conditional ::CONDITION_CELLIS);
$ $ objconditional1-> setoperatortype(phpexcel_style_conditional::
$objConditional1->addCondition('200');
$objConditional1->addCondition('400');
ページングを設定する (主に印刷用) アンカー: bbb
//特定のセルをフッターとして設定します
$objPHPExcel->getActiveSheet()->setBreak( 'A' .
$i, PHPExcel_Worksheet::BREAK_ROW
);
テーブルを配列で埋める アンカー: bbb
//配列の内容をA2から埋めていきます
$dataArray =array(array( ) 「2010」 、」Q1 「、」ユナイテッド
州"、790)、
、 「ユナイテッド」
州"、730)、
);
$objPHPExcel->getActiveSheet()->fromArray($dataArray,NULL, 「A2」 );
自動フィルタリングを設定する
アンカー: bbb
$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
//$objPHPExcel->getActiveSheet()->calculateWorksheetDimension()....A1 行の内容をすべて取得します
すべての数式を印刷してください
$objCalc =
PHPExcel
_Calculation::getInstance();
print_r($objCalc->listFunctionNames())
セル値の範囲を設定します
アンカー: bbb
$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3' )->getDataValidation();
$objValidation->setType(
PHPExcel_Cell_DataValidation::TYPE_WHOLE);
$objValidation->setErrorStyle(
PHPExcel_Cell_DataValidation:: STYLE_STOP);
$objValidation->setAllowBlank(true);
$objValidation->setShowInputMessage(true);
$objValidation->setShowErrorMessage(true);
$objValidation->setErrorTitle('Input
エラー'); //エラータイトル
//$objValidation->setShowDropDown(true);
$objValidation->setError('のみ
10 から 20 までの数字を使用できます!');
$objValidation->setPromptTitle('許可
input'); //プロンプトのタイトルを設定します
$objValidation->setPrompt('のみ
10 から 20 までの数字を使用できます。'); //プロンプトコンテンツ
$objValidation->setFormula1(10); //最大値を設定します
$objValidation->setFormula2(120); //最小値を設定します
//または次のように設定します $objValidation->setFormula2(1,5,6,7); 設定値は 1,5,6,7 のいずれかです
その他
$objPHPExcel->getActiveSheet()->getStyle( 'B5')->getAlignment()->setShrinkToFit(
) 本当 ); //長さが表示できない場合
自動的に行を折り返すかどうか
$objPHPExcel->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true) );//内容が表示できるように表示フォントサイズを自動変換します
$objPHPExcel->getActiveSheet()->getCell(B14)->getValue();
$objPHPExcel->getActiveSheet()->getCell(B14)->getPracticalValue();//計算された値を取得します
ファイルのインポートまたは読み取り
//PHPExcel_IOFactory::load メソッドを通じてファイルをロードします。load は、対応する処理クラスをインポートするファイルのサフィックス名を自動的に決定します。読み取り形式には、xlsx/xls/xlsm/ods/slk/csv が含まれます。 /xml/gnumeric
require_once '../Classes/PHPExcel/IOFactory.php';
$objPHPExcel =
PHPExcel_IOFactory::load(
//ロードされたファイルのデフォルトのテーブル(通常は最初のテーブル)は、toArray メソッドを通じて多次元配列を返します
$dataArray = $objPHPExcel->getActiveSheet()->toArray();
//読み取り後にxlsxファイルに直接書き込みます
$objWriter =
PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //$obj PHPExcel は上記のリソースです
$objWriter->save(str_replace(('.php','.xlsx') 、
__ファイル__));
XMLファイルを読む
$objReader =
PHPExcel_IOFactory:: createReader('Excel2003XML' );
$objPHPExcel = $objReader->load( "Excel2003XMLTest.xml" );
ods ファイルを読む
$objReader =
PHPExcel_IOFactory:: createReader('OOCalc');
$objPHPExcel = ->load("OOCalcTest.ods" );
数値ファイルを読み取る
$objReader =
PHPExcel_IOFactory:: createReader('Gnumeric');
$objPHPExcel = $objReader->load( "GnumericTest.gnumeric");
slkファイルを読む
$objPHPExcel =
PHPExcel_IOFactory:: load("SylkTest.slk");
データをループスルーする
$objReader =
PHPExcel_IOFactory::createReader('Excel2007'); // 20を作成します07の読書対象
$objPHPExcel = $objReader->load("05featuredemo.xlsx"); //xlsxファイルを読み込みます
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{ //ワークシートを走査します
ワークシート
- ' 、$worksheet->getTitle() 、PHP_EOL;
。
{ //行を走査
行番号 - ' 、$row->getRowIndex() 、PHP_EOL;
T $ cellTerator = $ row-& gt; // すべての列を取得します ;
$cellIterator->setIterateOnlyExistingCells( false); //
設定されていない場合でも、すべてのセルをループします
{ //列を横断する
{ //列が空でない場合は、その座標と計算値を取得します
️
セル - ' , $cell->getCooperative() , '
- ' , $cell->getManycalValue() , PHP_EOL;
}
}
配列をテーブルに挿入します
//挿入されたデータ 3 行のデータ