ãããžã§ã¯ãã®éçºæã«ãã¬ããŒãçµ±èšãçæããå¿ èŠãããããšã¯çãããããŸããã ãããžã§ã¯ããDelphi ã CïŒãŸãã¯ãããšãã°C ++ããã³Windowsã§éçºãããŠããå Žåãåé¡ã¯ãããŸããã COMãªããžã§ã¯ãã䜿çšããã ãã§ãã ãã ãã PHPã§Excel圢åŒã®ã¬ããŒããçæããå¿ èŠãããå Žåãç¶æ³ã¯ç°ãªããŸãã ãããŠããã®äœæãUNIXã©ã€ã¯ãªã·ã¹ãã ã§æ©èœããããã«ããŸãã ãããã幞ããªããšã«ãããã»ã©æªãã¯ãããŸããã ãããŠãããã«ã¯ååãªã©ã€ãã©ãªããããŸãã PHPExcelãéžæããŸãã ã ç§ã¯ãã®ã©ã€ãã©ãªã§æ°å¹ŽåããŠãããæºè¶³ããŠããŸãã ã¯ãã¹ãã©ãããã©ãŒã ãªã®ã§ã移æ€æ§ã«åé¡ã¯ãããŸããã
PHPExcelã䜿çšãããšãExcelã«ããŒã¿ãã€ã³ããŒãããã³ãšã¯ã¹ããŒãã§ããŸãã ããŸããŸãªãã¶ã€ã³ã¹ã¿ã€ã«ãã¬ããŒãã«é©çšããŸãã äžè¬çã«ããã¹ãŠãäžã«ãããŸãã æ°åŒã䜿çšããããšãã§ããŸãã ãã¹ãŠã®äœæ¥ïŒèªã¿åãããã³æžã蟌ã¿ïŒãutf-8ãšã³ã³ãŒãã§ããå¿
èŠãããããšãèæ
®ããå¿
èŠãããã ãã§ãã
ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«
åäœããã«ã¯ãPHPããŒãžã§ã³5.2.0以éãå¿
èŠã§ãã 次ã®æ¡åŒµæ©èœãå¿
èŠã§ãïŒphp_zipãphp_xmlãphp_gd2ã ããããã©ã€ãã©ãªãããŠã³ããŒãã§ããŸãã
PHPExcelã©ã€ãã©ãªã䜿çšãããšã次ã®åœ¢åŒã§ããŒã¿ãæžã蟌ãããšãã§ããŸãã
- Excel 2007
- Excel 97以éã
- PHPExcel Serialized Spreadshet;
- HTML
- CSV
PHPããExcelã«ããŒã¿ãã€ã³ããŒããã
ä¹ä¹ã圢æããäŸãèããŠã¿ãŸãããã
// excel require_once('PHPExcel.php'); // excel require_once('PHPExcel/Writer/Excel5.php'); // PHPExcel $xls = new PHPExcel(); // $xls->setActiveSheetIndex(0); // $sheet = $xls->getActiveSheet(); // $sheet->setTitle(' '); // A1 $sheet->setCellValue("A1", ' '); $sheet->getStyle('A1')->getFill()->setFillType( PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE'); // $sheet->mergeCells('A1:H1'); // $sheet->getStyle('A1')->getAlignment()->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER); for ($i = 2; $i < 10; $i++) { for ($j = 2; $j < 10; $j++) { // $sheet->setCellValueByColumnAndRow( $i - 2, $j, $i . "x" .$j . "=" . ($i*$j)); // $sheet->getStyleByColumnAndRow($i - 2, $j)->getAlignment()-> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } }
次ã«ã* .xlsãã¡ã€ã«ãååŸããå¿ èŠããããŸãã ããã§ã¯ã2ã€ã®æ¹æ³ã§ç§»åã§ããŸãã ããªãããªã³ã©ã€ã³ã¹ãã¢ãæã£ãŠãããšä»®å®ããã¯ã©ã€ã¢ã³ããäŸ¡æ Œè¡šãããŠã³ããŒããããå Žåããã®çµè«ã«é Œãæ¹ãè¯ãã§ãããïŒ
// HTTP- header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" ); header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" ); header ( "Cache-Control: no-cache, must-revalidate" ); header ( "Pragma: no-cache" ); header ( "Content-type: application/vnd.ms-excel" ); header ( "Content-Disposition: attachment; filename=matrix.xls" ); // $objWriter = new PHPExcel_Writer_Excel5($xls); $objWriter->save('php://output');
ããã§ãçæãããããŒã¿ã¯ããã«ãã©ãŠã¶ã«ãåãåºããããŸãã ãã ããããã«ãæšãŠããã®ã§ã¯ãªããã¡ã€ã«ãä¿åããå¿ èŠãããå Žåã¯ã HTTPããããŒã衚瀺ããå¿ èŠã¯ãªãããphpïŒ//åºåãã®ä»£ããã«ãã¡ã€ã«ã®ãã¹ãæå®ããå¿ èŠããããŸãã ãã¡ã€ã«ãäœæãããã£ã¬ã¯ããªã«ã¯æžã蟌ã¿æš©éãå¿ èŠã§ããããšãå¿ããªãã§ãã ããã ããã¯UNIXã©ã€ã¯ã·ã¹ãã ã«é©çšãããŸãã
3ã€ã®äŸ¿å©ãªæ瀺ã®äŸãèŠãŠã¿ãŸãããã
- $ sheet-> getColumnDimensionïŒ 'A'ïŒ-> setWidthïŒ40ïŒ -åãAããå¹ 40åäœã«èšå®ããŸãã
- $ sheet-> getColumnDimensionïŒ 'B'ïŒ-> setAutoSizeïŒtrueïŒ -ããã§ãåãBãã«ã¯èªåå¹ ãèšå®ãããŸãã
- $ sheet-> getRowDimensionïŒ4ïŒ-> setRowHeightïŒ20ïŒ-4çªç®ã®è¡ã®é«ãã20ãŠãããã«èšå®ããŸãã
ãŸããã¬ããŒãã®æäœã«å¿ èŠãªæ¬¡ã®æ¹æ³ã«ã泚æããŠãã ããã
- ã»ã«ã«ããŒã¿ãæ¿å
¥ããæ¹æ³ïŒ
- setCellValue ïŒ[$ pCoordinate = 'A1' [ã$ pValue = null [ã$ returnCell = false]]]ïŒ-3ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãïŒã»ã«ã®åº§æšãã»ã«ã«åºåãããããŒã¿ã3çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ããŒã«åã®å®æ°ã®ããããïŒ trueãŸãã¯false ïŒ trueãæž¡ãããå Žå ãã¡ãœããã¯ã»ã«ãªããžã§ã¯ããè¿ããããã§ãªãå Žåã¯ã¯ãŒã¯ã·ãŒããªããžã§ã¯ããè¿ããŸãïŒ;
- setCellValueByColumnAndRow ïŒ[$ pColumn = 0 [ã$ pRow = 1 [ã$ pValue = null [ã$ returnCell = false]]]]ïŒ-4ã€ã®ãã©ã¡ãŒã¿ãŒãåãåããŸãïŒã»ã«åçªå·ãã»ã«è¡çªå·ãã»ã«ã«åºåããããŒã¿ã4çªç®ãã®ãã©ã¡ãŒã¿ãŒã¯ã setCellValue ïŒïŒã¡ãœããã®3çªç®ã®ãã©ã¡ãŒã¿ãŒãšåæ§ã«æ©èœããŸãã
- ã»ã«ãååŸããæ¹æ³ïŒ
- getCell ïŒ[$ pCoordinate = 'A1']ïŒ-ã»ã«ã®åº§æšããã©ã¡ãŒã¿ãŒãšããŠåãåããŸãã
- getCellByColumnAndRow ïŒ[$ pColumn = 0 [ã$ pRow = 1]]ïŒ-åçªå·ãšã»ã«è¡ã®åœ¢åŒã§2ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã
ã芧ã®ãšãããäžèšã®ã¡ãœããã¯ãã¢ã«ãªã£ãŠããŸãã ãããã£ãŠã座æšã®æååãŸãã¯æ°å€è¡šçŸã䜿çšããŠã»ã«ãæäœã§ããŸãã ãã¡ãããããã¯äœæ¥ã®è¿œå ã®å©ç¹ã§ãã
Excelã§PHPã䜿çšããã¬ããŒãäœæ
éåžžã«å€ãã®å Žåãã¬ããŒãã®äžéšã®ããŒã¿ã匷調衚瀺ããå¿ èŠããããŸãã ãã©ã³ããéžæããããäžéšã®ã»ã«ãªã©ã«èæ¯ãå¡ãã€ã¶ããå¢çç·ãé©çšããŸã ããã«ãããæãéèŠãªæ å ±ã«éäžããããšãã§ããŸãïŒçå®ã¯æ°ãæ£ããå¯èœæ§ããããŸãïŒã ãããã®ç®çã®ããã«ãPHPExcelã©ã€ãã©ãªã«ã¯ãExcelã®ã»ã«ã«é©çšã§ããäžé£ã®ã¹ã¿ã€ã«ããããŸãã ãã¡ããããã®ã©ã€ãã©ãªã«ã¯ããããªããã€ãã¹ãããããŸããã¹ã¿ã€ã«ãè€æ°ã®ã»ã«ã«åæã«é©çšããããšã¯ã§ããŸããããåã ã®ã»ã«ã«ã®ã¿é©çšã§ããŸãã ããããããã¯Webã¢ããªã±ãŒã·ã§ã³ã®éçºæã«äžå¿«æãåŒãèµ·ããããšã¯ãããŸããã
ã»ã«ã®ã¹ã¿ã€ã«ãèšå®ããã«ã¯ã次ã®3ã€ã®æ¹æ³ããããŸãã
- PHPExcel_Styleã¯ã©ã¹ã®applyFromArrayã¡ãœããã䜿çšããŸãã 次ã®ãã©ã¡ãŒã¿ãŒãæã€é
åãapplyFromArrayã¡ãœããã«æž¡ãããŸãã
- fill-å å¡«ãã©ã¡ãŒã¿ãæã€é åã
- font-ãã©ã³ããã©ã¡ãŒã¿ãæã€é åã
- borders-ãã¬ãŒã ãã©ã¡ãŒã¿ãæã€é åã
- alignment-äœçœ®åãããã©ã¡ãŒã¿ãŒãæã€é åã
- numberformat-ã»ã«ããŒã¿è¡šç€ºã®ãã©ãŒããããã©ã¡ãŒã¿ãå«ãé å
- ä¿è· -ã»ã«ä¿è·ãã©ã¡ãŒã¿ãŒãæã€é åã
- PHPExcel_Styleã¯ã©ã¹ã®duplicateStyleã¡ãœãããé©çšããŸãã ãã®ã¡ãœããã¯ãäºåã«ããŒãããããã¡ã€ã«ïŒãã³ãã¬ãŒãïŒã䜿çšããå¿
èŠãããå Žåã«éåžžã«åœ¹ç«ã¡ãŸãããã®å Žåãç¹å®ã®ã»ã«ã®ã¹ã¿ã€ã«ãèªåã§å®çŸ©ãããããè€è£œããæ¹ã䟿å©ã§ãã ãã®ã¡ãœããã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã
- pCellStyle-ãã®ãã©ã¡ãŒã¿ãŒã¯ãPHPExcel_Styleã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã§ãã
- pRange-ã»ã«ã®ç¯å²ã
- ã¹ã¿ã€ã«ããšã«PHPExcel_Styleã¯ã©ã¹ã®ã¡ãœãããåå¥ã«äœ¿çšããŸãã ããšãã°ã次ã®ããã«ã»ã«ã«ãã©ã³ããå²ãåœãŠãããšãã§ããŸãïŒ$ sheet-> getStyleïŒ 'A1'ïŒ-> getFontïŒïŒ-> setNameïŒ 'Arial'ïŒã
泚ã
fillãã©ã¡ãŒã¿ãŒã®å€ã¯ã次ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãŒãæã€é åã§ãã
- type-å¡ãã€ã¶ãã¿ã€ãã
- å転 -åŸé è§åºŠã
- startcolor -RGB圢åŒã®åæã«ã©ãŒãã©ã¡ãŒã¿ãæã€é å圢åŒã®å€ã
- endcolor -ARGB圢åŒã®æçµçãªè²ãã©ã¡ãŒã¿ãŒãæã€é å圢åŒã®å€ã
- color -RGB圢åŒã®åæã«ã©ãŒãã©ã¡ãŒã¿ãæã€é å圢åŒã®å€ã
å¡ãã€ã¶ãã¹ã¿ã€ã«
FILL_NONE | ãªã |
FILL_SOLID | åºã |
FILL_GRADIENT_LINEAR | ç·åœ¢ |
FILL_GRADIENT_PATH | é |
FILL_PATTERN_DARKDOWN | æé |
FILL_PATTERN_DARKGRAY | ããŒã¯ã°ã¬ãŒ |
FILL_PATTERN_DARKGRID | ããŒã¯ã°ãªãã |
FILL_PATTERN_DARKHORIZONTAL | æãæ°Žå¹³ |
FILL_PATTERN_DARKTRELLIS | darkTrellis |
FILL_PATTERN_DARKUP | æé» |
FILL_PATTERN_DARKVERTICAL | æãåçŽ |
FILL_PATTERN_GRAY0625 | gray0625 |
FILL_PATTERN_GRAY125 | ã°ã¬ãŒ125 |
FILL_PATTERN_LIGHTDOWN | ã©ã€ãããŠã³ |
FILL_PATTERN_LIGHTGRAY | lightGray |
FILL_PATTERN_LIGHTGRID | lightGrid |
FILL_PATTERN_LIGHTHORIZONTAL | å ã®æ°Žå¹³ |
FILL_PATTERN_LIGHTTRELLIS | lightTrellis |
FILL_PATTERN_LIGHTUP | ã©ã€ãã¢ãã |
FILL_PATTERN_LIGHTVERTICAL | lightVertical |
FILL_PATTERN_MEDIUMGRAY | mediumGray |
array( 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, 'rotation' => 0, 'startcolor' => array( 'rgb' => '000000' ), 'endcolor' => array( 'argb' => 'FFFFFFFF' ), 'color' => array( 'rgb' => '000000' ) );
ãŸãã¯ã次ã®æ¹æ³ã䜿çšã§ããŸãã
$ PHPExcel_Style-> getFillïŒïŒ-> setFillTypeïŒPHPExcel_Style_Fill :: FILL_GRADIENT_LINEARïŒ;
$ PHPExcel_Style-> getFillïŒïŒ-> setRotationïŒ0ïŒ;
$ PHPExcel_Style-> getFillïŒïŒ-> getStartColorïŒïŒ-> applyFromArrayïŒarrayïŒ 'rgb' => 'C2FABD'ïŒïŒ;
$ PHPExcel_Style-> getFillïŒïŒ-> getEndColorïŒïŒ-> applyFromArrayïŒarrayïŒ 'argb' => 'FFFFFFFF'ïŒïŒã
ç»åæ¿å ¥
ãã£ãã«ãããŸããããã¬ããŒãã«ç»åãæ¿å ¥ãããšäŸ¿å©ã§ãã ããŽãå³ãªã©ã䜿çšã§ããŸãã åäœããã«ã¯ã次ã®ã¡ãœãããå¿ èŠã§ãã
- setPath ïŒ[$ pValue = ''ã[$ pVerifyFile = true ]]ïŒ-ãã®ã¡ãœããã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã æåã®ãã©ã¡ãŒã¿ãŒã¯ãç»åãã¡ã€ã«ãžã®ãã¹ã§ãã ãŸãã2çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ããã¡ã€ã«ã®ååšã確èªããå¿ èŠããããã©ããã瀺ãæå³ããããŸãïŒå€trueãŸãã¯falseã®ãããããåãããšãã§ããŸã ïŒã
- setCoordinates ïŒ[$ pValue = 'A1']ïŒïŒ-ã»ã«åº§æšãæã€æååã®åœ¢åŒã®å ¥åãšããŠ1ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã
- setOffsetX ïŒ[$ pValue = 0]ïŒ-ã»ã«ã®å·Šç«¯ããXã®ãªãã»ããå€ãæã€ãã©ã¡ãŒã¿ãŒã1ã€åãåããŸãã
- setOffsetY ïŒ[$ pValue = 0]ïŒ-ã»ã«ã®äžç«¯ããYã®ãªãã»ããå€ãæã€1ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã
- setWorksheet ïŒ[$ pValue = null ã[$ pOverrideOld = false ]]ïŒ-ãã®ã¡ãœããã¯å ¥åãšããŠ2ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãã æåã¯å¿ é ã§ããã2çªç®ã¯å¿ é ã§ã¯ãããŸããã æåã®ãã©ã¡ãŒã¿ãŒã¯ã PHPExcel_Worksheetã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒçŸåšã®ã¢ã¯ãã£ãã·ãŒãïŒã§ãã 2çªç®ã®ãã©ã¡ãŒã¿ãŒã®å€ãšããŠtrueãæž¡ããšãã·ãŒããæ¢ã«ããæ©ãå²ãåœãŠãããŠããå Žåãããã¯äžæžããããã€ã¡ãŒãžã¯ããã«å¿ããŠåé€ãããŸãã
ç»åæ¿å ¥ã¢ã«ãŽãªãºã ã瀺ãã³ãŒãã以äžã«ç€ºããŸãïŒ
... $sheet->getColumnDimension('B')->setWidth(40); $imagePath = dirname ( __FILE__ ) . '/excel.png'; if (file_exists($imagePath)) { $logo = new PHPExcel_Worksheet_Drawing(); $logo->setPath($imagePath); $logo->setCoordinates("B2"); $logo->setOffsetX(0); $logo->setOffsetY(0); $sheet->getRowDimension(2)->setRowHeight(190); $logo->setWorksheet($sheet); } ...
以äžã¯ãç»åãæ¿å ¥ãããã¬ããŒãã§ãã
ãã©ã³ã
次ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãå«ãé åã¯ã fontãã©ã¡ãŒã¿ã®å€ãšããŠæå®ãããŸãã
- name-ãã©ã³ãå;
- ãµã€ãº -ãã©ã³ããµã€ãºã
- 倪å - 倪åã§åŒ·èª¿è¡šç€ºã
- æäœ -æäœ;
- äžç· - äžç·ã¹ã¿ã€ã«ã
- ã¹ãã©ã€ã¯ -åãæ¶ãç·ã
- superScript-äžä»ãæå
- subScript-äžä»ãæå;
- color -RGB圢åŒã®è²ãã©ã¡ãŒã¿ãŒãæã€é åå€ã
äžç·ã¹ã¿ã€ã«
UNDERLINE_NONE | ãã |
UNDERLINE_DOUBLE | äºéäžç· |
UNDERLINE_SINGLE | äžéäžç· |
array( 'name' => 'Arial', 'size' => 12, 'bold' => true, 'italic' => false, 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, 'strike' => false, 'superScript' => false, 'subScript' => false, 'color' => array( 'rgb' => '808080' ) );
ãŸãã¯ã次ã®æ¹æ³ã䜿çšããŸãã
$ PHPExcel_Style-> getFontïŒïŒ-> setNameïŒ 'Arial'ïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setBoldïŒtrueïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setItalicïŒfalseïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setSuperScriptïŒfalseïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setSubScriptïŒfalseïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setUnderlineïŒPHPExcel_Style_Font :: UNDERLINE_DOUBLEïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setStrikethroughïŒfalseïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> getColorïŒïŒ-> applyFromArrayïŒarrayïŒ 'rgb' => '808080'ïŒïŒ;
$ PHPExcel_Style-> getFontïŒïŒ-> setSizeïŒ12ïŒã
ãã¬ãŒã
é åã¯ã次ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãå«ãbordersãã©ã¡ãŒã¿ã®å€ãšããŠæå®ãããŸãã
- ãã¬ãŒã ã¿ã€ã -ïŒäž|ããŒã¹|å·Š|å³|察è§ç·|察è§ç·æ¹åïŒ;
- ã¹ã¿ã€ã« -ãã¬ãŒã ã¹ã¿ã€ã«ã
- color -RGB圢åŒã®è²ãã©ã¡ãŒã¿ãŒãæã€é åå€ã
ç·ã®ã¹ã¿ã€ã«
BORDER_NONE | ãã |
BORDER_DASHDOT | ããããç¹åš |
BORDER_DASHDOTDOT | 2ã€ã®ããããç¹åš |
BORDER_DASHED | ç¹ç· |
BORDER_DOTTED | ãã€ã³ã |
BORDER_DOUBLE | ããã« |
BORDER_HAIR | ãã¢ã©ã€ã³ |
BORDER_MEDIUM | å¹³åç |
BORDER_MEDIUMDASHDOT | ããããç¹åš |
BORDER_MEDIUMDASHDOTDOT | 2ã€ã®ç¹ãæã€å€ªãç¹ç· |
BORDER_MEDIUMDASHED | 倪ãç¹ç· |
BORDER_SLANTDASHDOT | ç¹ç·ç¹ç· |
BORDER_THICK | åããªã£ã |
BORDER_THIN | èã |
array( 'bottom' => array( 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array( ' rgb' => '808080' ) ), 'top' => array( 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array( 'rgb' => '808080' ) ) );
次ã®æ¹æ³ã䜿çšããããšãã§ããŸãã
$ PHPExcel_Style-> getBordersïŒïŒ-> getLeftïŒïŒ-> applyFromArrayïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ;
$ PHPExcel_Style-> getBordersïŒïŒ-> getRightïŒïŒ-> applyFromArrayïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ;
$ PHPExcel_Style-> getBordersïŒïŒ-> getTopïŒïŒ-> applyFromArrayïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ;
$ PHPExcel_Style-> getBordersïŒïŒ-> getBottomïŒïŒ-> applyFromArrayïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ;
$ PHPExcel_Style-> getBordersïŒïŒ-> getDiagonalïŒïŒ-> applyFromArrayïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ;
$ PHPExcel_Style-> getBordersïŒïŒ-> setDiagonalDirectionïŒarrayïŒ 'style' => PHPExcel_Style_Border :: BORDER_DASHDOTã 'color' => arrayïŒ 'rgb' => '808080'ïŒïŒïŒ
ã¢ã©ã€ã¡ã³ã
ã¢ã©ã€ã³ã¡ã³ããã©ã¡ãŒã¿å€ã¯ã4ã€ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãå ¥åãšããŠåãå ¥ããé åã§ãã
- horizoâântal-æ°Žå¹³é 眮ã®å®æ°ã
- vertical-åçŽæ¹åã®é 眮ã®å®æ°ã
- rotation-ããã¹ãã®å転è§åºŠã
- wrap-ããã¹ãã®æãè¿ããæå¹ã«ããŸãã
- shrinkToFit-ããã¹ããã»ã«é åããåºããšãã«ãã©ã³ããµã€ãºãå€æŽãããã©ããã
- ã€ã³ãã³ã -巊端ããã€ã³ãã³ãããŸãã
æ°Žå¹³æ¹åã®é 眮
HORIZONTAL_GENERAL | ã¡ã€ã³ |
HORIZONTAL_LEFT | å·Š |
HORIZONTAL_RIGHT | å³ãž |
HORIZONTAL_CENTER | äžå€®ã« |
HORIZONTAL_CENTER_CONTINUOUS | éžæäžå¿ |
HORIZONTAL_JUSTIFY | å¹ ã§ |
VERTICAL_BOTTOM | äžç«¯ã«æ²¿ã£ãŠ |
VERTICAL_TOP | äžç«¯ |
VERTICAL_CENTER | äžå€®ã« |
VERTICAL_JUSTIFY | é«ã㧠|
array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 'rotation' => 0, 'wrap' => true, 'shrinkToFit' => false, 'indent' => 5 )
ãŸãã¯ã次ã®æ¹æ³ã䜿çšããŸãã
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setHorizoâântalïŒPHPExcel_Style_Alignment :: HORIZONTAL_CENTERïŒ;
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setVerticalïŒPHPExcel_Style_Alignment :: VERTICAL_JUSTIFYïŒ;
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setTextRotationïŒ10ïŒ;
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setWrapTextïŒtrueïŒ;
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setShrinkToFitïŒfalseïŒ;
$ PHPExcel_Style-> getAlignmentïŒïŒ-> setIndentïŒ5ïŒã
ããŒã¿è¡šç€ºåœ¢åŒ
numberformatãã©ã¡ãŒã¿ãŒã¯ã1ã€ã®ãã©ã¡ãŒã¿ãŒïŒ code-ã»ã«ããŒã¿åœ¢åŒïŒã®ã¿ãå«ãé åã§ãã
å¯èœãªåœ¢åŒã®ãªã¹ã
FORMAT_GENERAL | å šè¬ |
FORMAT_TEXT | @ |
FORMAT_NUMBER | 0 |
FORMAT_NUMBER_00 | 0.00 |
FORMAT_NUMBER_COMMA_SEPARATED1 | ïŒã## 0.00 |
FORMAT_NUMBER_COMMA_SEPARATED2 | ïŒã## 0.00_- |
FORMAT_PERCENTAGE | 0ïŒ |
FORMAT_PERCENTAGE_00 | 0.00ïŒ |
FORMAT_DATE_YYYYMMDD2 | yyyy-mm-dd |
FORMAT_DATE_YYYYMMDD | yy-mm-dd |
FORMAT_DATE_DDMMYYYY | dd / mm / yy |
FORMAT_DATE_DMYSLASH | d / m / y |
FORMAT_DATE_DMYMINUS | dmy |
FORMAT_DATE_DMMINUS | dm |
FORMAT_DATE_MYMINUS | ç§ã® |
FORMAT_DATE_XLSX14 | mm-dd-yy |
FORMAT_DATE_XLSX15 | d-mmm-yy |
FORMAT_DATE_XLSX16 | d-mmm |
FORMAT_DATE_XLSX17 | mmm-yy |
FORMAT_DATE_XLSX22 | m / d / yy hïŒmm |
FORMAT_DATE_DATETIME | d / m / yhïŒmm |
FORMAT_DATE_TIME1 | hïŒmm AM / PM |
FORMAT_DATE_TIME2 | hïŒmmïŒss AM / PM |
FORMAT_DATE_TIME3 | hïŒmm |
FORMAT_DATE_TIME4 | hïŒmmïŒss |
FORMAT_DATE_TIME5 | mmïŒss |
FORMAT_DATE_TIME6 | hïŒmmïŒss |
FORMAT_DATE_TIME7 | iïŒsS |
FORMAT_DATE_TIME8 | hïŒmmïŒss |
FORMAT_DATE_YYYYMMDDSLASH | yy / mm / dd; @ |
FORMAT_CURRENCY_USD_SIMPLE | "$"ïŒã## 0.00 _-; @ |
FORMAT_CURRENCY_USD | $ïŒã## 0_- |
FORMAT_CURRENCY_EUR_SIMPLE | [$ EUR]ïŒã## 0.00_- |
array( 'code' => PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE );
ãŸãã¯ã次ã®æ¹æ³ã䜿çšã§ããŸãã
$ PHPExcel_Style-> getNumberFormatïŒïŒ-> setFormatCodeïŒPHPExcel_Style_NumberFormat :: FORMAT_CURRENCY_EUR_SIMPLEïŒ;
ã»ã«ä¿è·
ä¿è·ãã©ã¡ãŒã¿ãŒã®å€ã¯ã2ã€ã®ãªãã·ã§ã³ãã©ã¡ãŒã¿ãŒãå«ãé åã§ãã
- ãã㯠-ã»ã«ãä¿è·ããŸãã
- hidden-æ°åŒãé衚瀺ã«ããŸãã
ã»ã«ä¿è·ã®ãã©ã¡ãŒã¿ãŒã®èšå®äŸïŒ
array( 'locked' => true, 'hidden' => false );
ãŸãã¯ã次ã®æ¹æ³ã䜿çšããŸãã
$ PHPExcel_Style-> getProtectionïŒïŒ-> setLockedïŒtrueïŒ;
$ PHPExcel_Style-> getProtectionïŒïŒ-> setHiddenïŒfalseïŒ;
ããã§ãã¹ã¿ã€ã«èšå®ãšåã¹ã¿ã€ã«ã«ååšãããã©ã¡ãŒã¿ãŒãããããŸããã ããã§ãè¡šã®ã»ã«ã«ã¹ã¿ã€ã«ãé©çšããŸãããããã¯3ã€ã®æ¹æ³ã§è¡ããŸãã æåã®æ¹æ³ã¯ãèšå®ã®é åãäœæããããšã§ããèšå®ã®é åã¯ã PHPExcel_Styleã¯ã©ã¹ã®applyFromArrayã¡ãœããã«ãã©ã¡ãŒã¿ãŒãšããŠæž¡ããŸãã
$style = array( 'font' => array( 'name' => 'Arial', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array ( 'rgb' => 'C2FABD' ) ), 'alignment' => array ( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER ) );
次ã«ãäœæããã¹ã¿ã€ã«ãExcelã»ã«ã«é©çšããŸãã
$sheet->getStyleByColumnAndRow($i - 2, $j)->applyFromArray($style);
ããã§ãåãã¹ã¿ã€ã«ãé©çšããŸãããç°ãªãææ³ã䜿çšããŸãã
// $sheet->getStyleByColumnAndRow($i - 2, $j)->getAlignment()->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $sheet->getStyleByColumnAndRow($i - 2, $j)->getFont()->setName('Arial'); // $sheet->getStyleByColumnAndRow($i - 2, $j)->getFill()-> setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyleByColumnAndRow($i - 2, $j)->getFill()-> getStartColor()->applyFromArray(array('rgb' => 'C2FABD'));
ååŸãããã®ã¯æ¬¡ã®ãšããã§ãã
ç¹å®ã®ã»ã«ã®ã¹ã¿ã€ã«ããŒã¿ãååŸããã«ã¯ãPHPExcel_Styleã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãè¿ã次ã®ã¡ãœããã®ããããã䜿çšããå¿ èŠããããŸãã
- getStyleByColumnAndRow ïŒ[$ pColumn = 0 [ã$ pRow = 1]]ïŒ-æ°å€åº§æšã§ã»ã«ã«ã¢ã¯ã»ã¹ããå Žåã«äœ¿çšãããŸãã ãã®ã¡ãœããã¯ãåçªå·ãšã»ã«è¡ã®åœ¢åŒã§2ã€ã®ãã©ã¡ãŒã¿ãŒãæž¡ãå¿ èŠããããŸãã
- getStyle ïŒ[pCellCoordinate = 'A1']ïŒ-ã»ã«ã®æåå座æšã«ã¢ã¯ã»ã¹ããããã«äœ¿çšãããŸãã ã¡ãœããã¯1ã€ã®ãã©ã¡ãŒã¿ãŒãæž¡ãå¿ èŠããããŸããããã¯åº§æšã®æååè¡šçŸã§ãã
次ã«ãã¹ã¿ã€ã«ãè€è£œããŠã»ã«ãã¹ã¿ã€ã«èšå®ãã3çªç®ã®æ¹æ³ãæ€èšããŸãã 䜿çšäŸã以äžã«ç€ºããŸãïŒç¹å®ã®ã¹ã¿ã€ã«ãã»ã«ãB2ãã«é©çšãããã»ã«ãF2ïŒF10ãã®ç¯å²ã«å¯ŸããŠãããè€è£œããããšãæ³å®ããŠããŸãïŒïŒ
$sheet->duplicateStyle($sheet->getStyle('B2'), 'F2:F10');
ã³ã¡ã³ããè¿œå
ã»ã«ã«ã³ã¡ã³ããè¿œå ããæ©äŒã誰ããåãæ©äŒã¯å°ãªããšæããŸãããããã¯çŽç²ã«ç§ã®å人çãªæèŠã§ããããã®ãããªæ©äŒããããŸãã 以äžã®äŸãããããããã«ãã»ã«ãžã®ã³ã¡ã³ãã®è¿œå ã¯éåžžã«ç°¡åã§ãã
... // $fBold = array('name' => 'Tahoma', 'size' => 10, 'bold' => true); $fNormal = array('name' => 'Tahoma', 'size' => 10); $richText = $sheet->getComment('B2')->getText(); $richText->createTextRun("Lorem ipsum ")->getFont()-> applyFromArray($fNormal); $richText->createTextRun("dolor sit")->getFont()-> applyFromArray($fBold); $richText->createTextRun(" amet consectetuer")->getFont()-> applyFromArray($fNormal); // $sheet->getComment('B2')->setWidth('250'); // $sheet->getComment('B2')->setHeight('25'); ...
createTextRunïŒïŒã¡ãœãããå床åŒã³åºããšãæ°ããã³ã¡ã³ããæ¢åã®ã³ã¡ã³ãã«è¿œå ãããŸããã眮ãæããããªãããšã«æ³šæããŠãã ããã ãã®ã¡ãœããã¯ã PHPExcel_RichText_Runã¯ã©ã¹ã®ãªããžã§ã¯ããè¿ãããšã«æ³šæããŠãã ããããã®ã¯ã©ã¹ã«ã¯ããã©ã³ããã©ã¡ãŒã¿ãèšå®ããã³åä¿¡ããã¡ãœããããããŸãã
- getFont ïŒïŒ- PHPExcel_Style_Fontãã©ã³ããæäœããããã®ã¯ã©ã¹ãªããžã§ã¯ããè¿ããŸãã
- setFont ïŒ[$ pFont = null ]ïŒïŒïŒïŒ-ãã®ã¡ãœããã¯ãã¯ã©ã¹PHPExcel_Style_Fontã®ãªããžã§ã¯ãããã©ã¡ãŒã¿ãŒãšããŠæž¡ãå¿ èŠããããŸãã
以äžã«ã³ã¡ã³ãã瀺ããŸãã
ãªã³ã¯æ¿å ¥
以äžã®äŸãããããããã«ãã»ã«ã«ãªã³ã¯ãæ¿å ¥ããŠãåé¡ã¯çºçããŸããã
... // - $sheet->getCell('A2')->getHyperlink()->setUrl('http://www.phpexcel.net'); // Sheet2 $sheet->getCell('A2')->getHyperlink()->setUrl("sheet://'Sheet2'!D5"); ...
ãªã³ã¯ã®åœ¢åŒã§ã䜿çšã§ããŸããããšãã°ãã¡ãŒã«ã¢ãã¬ã¹ïŒmailtoïŒexample@mail.comã
Excelããã®ããŒã¿ã®èªã¿åã
ã¬ããŒããçæãããããã«ã¹ã¿ã€ã«ãé©çšããããšã¯ç¢ºãã«çŽ æŽãããã§ãã ããããPHPExcelã©ã€ãã©ãªã®å¯èœæ§ã¯ããã§çµããã§ã¯ãããŸããã ããŠã圌女ãä»ã«äœãã§ãããèŠãŠã¿ãŸãããã ãŸãã* .xls / * .xlsxãã¡ã€ã«ããããŒã¿ãèªã¿åãããšãã§ããŸãã
PHPExcelã©ã€ãã©ãªã䜿çšãããšã次ã®åœ¢åŒãèªã¿åãããšãã§ããŸãã
- Excel 2007
- Excel 5.0 / Excel 95;
- Excel 97以éã
- PHPExcel Serialized Spreadshet;
- ã·ã³ããªãã¯ãªã³ã¯ã
- CSV
äœæ¥ã«ã¯ã2ã€ã®ã¯ã©ã¹ã®ãªããžã§ã¯ããå¿ èŠã§ãã
- PHPExcel_Worksheet_RowIterator-è¡ã®ç¹°ãè¿ãã«äœ¿çšãããŸãã
- PHPExcel_Worksheet_CellIterator-ã»ã«ã®ç¹°ãè¿ãã«äœ¿çšãããŸãã
ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã«ãè»ã«é¢ããæ å ±ãå«ãããŒãã«ããããŒã¿ãåºåããŸãã
ãã¡ã€ã«ã®èªã¿åãã®äŸã以äžã«ç€ºããŸãã
require_once ('PHPExcel/IOFactory.php'); // $xls = PHPExcel_IOFactory::load('xls.xls'); // $xls->setActiveSheetIndex(0); // $sheet = $xls->getActiveSheet();
æåã®ãªãã·ã§ã³
... echo "<table>"; // $rowIterator = $sheet->getRowIterator(); foreach ($rowIterator as $row) { // $cellIterator = $row->getCellIterator(); echo "<tr>"; foreach ($cellIterator as $cell) { echo "<td>" . $cell->getCalculatedValue() . "</td>"; } echo "</tr>"; } echo "</table>";
2çªç®ã®ãªãã·ã§ã³
... echo "<table>"; for ($i = 1; $i <= $sheet->getHighestRow(); $i++) { echo "<tr>"; $nColumn = PHPExcel_Cell::columnIndexFromString( $sheet->getHighestColumn()); for ($j = 0; $j < $nColumn; $j++) { $value = $sheet->getCellByColumnAndRow($j, $i)->getValue(); echo "<td>$value</td>"; } echo "</tr>"; } echo "</table>";
æåã®ãªãã·ã§ã³ã§ã¯ãå埩åã䜿çšããŠã»ã«ããããŒã¿ãèªã¿åããŸãã 2çªç®ã®æ¹æ³ã§ã¯ãã€ã³ããã¯ã¹ã®ã¢ãã¬ã¹æå®ã䜿çšããŠãã·ãŒãã®ã»ã«ã«ã¢ã¯ã»ã¹ããŠããŒã¿ãååŸããŸãã è¡ãšåã®æ°ã«é¢ããããŒã¿ãååŸããã«ã¯ã PHPExcel_Worksheetã¯ã©ã¹ã®æ¬¡ã®ã¡ãœããã䜿çšããŸãã
- getHighestColumnïŒïŒ -ã¢ã¯ãã£ããªã·ãŒãã§æåŸã«å æãããåã®èšå·è¡šçŸãè¿ããŸãã 泚æïŒåã€ã³ããã¯ã¹ã§ã¯ãªãããã®ã·ã³ããªãã¯è¡šçŸïŒAãFãªã©ïŒã
- getHighestRowïŒïŒ -ã¢ã¯ãã£ããªã·ãŒãã§å æãããŠããè¡ã®æ°ãè¿ããŸãã
ãŸãã PHPExcel_Cellã¯ã©ã¹ã®äžéšã§ããcolumnIndexFromStringã¡ãœããã®å©ãããªããã°å®è¡ã§ããŸããã ãã®ã¡ãœããã䜿çšãããšãã·ã³ãã«è¡šçŸã«ãã£ãŠåã®ã€ã³ããã¯ã¹ã決å®ã§ããŸãã
ãã¢æ©èœã䜿çšããŠãExcel圢åŒã®ãã¡ã€ã«åœ¢åŒã§ã¬ããŒããçæããã³èªã¿åãããšãã§ããŸãã ãŸããã¹ã¿ã€ã«ãæäœããããã®ã»ãŒãã¹ãŠã®å¯èœãªæ¹æ³ã瀺ãããŸããã