Completed
Pull Request — master (#2)
by satoru
02:05
created

PhpExcelWrapper::getFont()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 3
1
<?php
2
3
namespace PhpExcelWrapper;
4
5
use \PHPExcel_IOFactory;
6
use \PHPExcel_Cell;
7
use \PHPExcel_Worksheet_Drawing;
8
use \PHPExcel_Style_Border;
9
use \PHPExcel_Style_Alignment;
10
use \PHPExcel_Style_Fill;
11
12
/**
13
* PhpExcelWrapper
14
* PHPExcelを記載しやすくするためのラッパー
15
*/
16
class PhpExcelWrapper
17
{
18
    private $__phpexcel;
19
    private $__sheet = [];
20
    private $__deleteSheetList = [];
21
    private static $__borderType = [
22
        'none' => PHPExcel_Style_Border::BORDER_NONE,
23
        'thin' => PHPExcel_Style_Border::BORDER_THIN,
24
        'medium' => PHPExcel_Style_Border::BORDER_MEDIUM,
25
        'dashed' => PHPExcel_Style_Border::BORDER_DASHED,
26
        'dotted' => PHPExcel_Style_Border::BORDER_DOTTED,
27
        'thick' => PHPExcel_Style_Border::BORDER_THICK,
28
        'double' => PHPExcel_Style_Border::BORDER_DOUBLE,
29
        'hair' => PHPExcel_Style_Border::BORDER_HAIR,
30
        'mediumdashed' => PHPExcel_Style_Border::BORDER_MEDIUMDASHED,
31
        'dashdot' => PHPExcel_Style_Border::BORDER_DASHDOT,
32
        'mediumdashdot' => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOT,
33
        'dashdotdot' => PHPExcel_Style_Border::BORDER_DASHDOTDOT,
34
        'mediumdashdotdot' => PHPExcel_Style_Border::BORDER_MEDIUMDASHDOTDOT,
35
        'slantdashdot' => PHPExcel_Style_Border::BORDER_SLANTDASHDOT,
36
    ];
37
38
    private static $__alignHolizonalType = [
39
        'general' => PHPExcel_Style_Alignment::HORIZONTAL_GENERAL,
40
        'center' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
41
        'left' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
42
        'right' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
43
        'justify' => PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY,
44
        'countinuous' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER_CONTINUOUS,
45
    ];
46
47
    private static $__alignVerticalType = [
48
        'bottom' => PHPExcel_Style_Alignment::VERTICAL_BOTTOM,
49
        'center' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
50
        'justify' => PHPExcel_Style_Alignment::VERTICAL_JUSTIFY,
51
        'top' => PHPExcel_Style_Alignment::VERTICAL_TOP,
52
    ];
53
54
    private static $__fillType = [
55
        'linear' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
56
        'path' => PHPExcel_Style_Fill::FILL_GRADIENT_PATH,
57
        'none' => PHPExcel_Style_Fill::FILL_NONE,
58
        'darkdown' => PHPExcel_Style_Fill::FILL_PATTERN_DARKDOWN,
59
        'darkgray' => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRAY,
60
        'darkgrid' => PHPExcel_Style_Fill::FILL_PATTERN_DARKGRID,
61
        'darkhorizontal' => PHPExcel_Style_Fill::FILL_PATTERN_DARKHORIZONTAL,
62
        'darktrellis' => PHPExcel_Style_Fill::FILL_PATTERN_DARKTRELLIS,
63
        'darkup' => PHPExcel_Style_Fill::FILL_PATTERN_DARKUP,
64
        'darkvertical' => PHPExcel_Style_Fill::FILL_PATTERN_DARKVERTICAL,
65
        'gray0625' => PHPExcel_Style_Fill::FILL_PATTERN_GRAY0625,
66
        'gray125' => PHPExcel_Style_Fill::FILL_PATTERN_GRAY125,
67
        'lightdown' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTDOWN,
68
        'lightgray' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRAY,
69
        'lightgrid' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTGRID,
70
        'lighthorizontal' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTHORIZONTAL,
71
        'lighttrellis' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTTRELLIS,
72
        'lightup' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTUP,
73
        'lightvertical' => PHPExcel_Style_Fill::FILL_PATTERN_LIGHTVERTICAL,
74
        'mediumgray' => PHPExcel_Style_Fill::FILL_PATTERN_MEDIUMGRAY,
75
        'solid' => PHPExcel_Style_Fill::FILL_SOLID,
76
    ];
77
78
    /**
79
    * __construct
80
    *
81
    * @param string $template テンプレートファイルのパス
82
    * @author hagiwara
83
    */
84
    public function __construct($template = null, $type = 'Excel2007')
85
    {
86
        if ($template === null) {
87
            //テンプレート無し
88
            $this->__phpexcel = new \PHPExcel();
89
        } else {
90
            //テンプレートの読み込み
91
            $reader = PHPExcel_IOFactory::createReader($type);
92
            $this->__phpexcel = $reader->load($template);
93
        }
94
    }
95
96
    /**
97
    * setVal
98
    * 値のセット
99
    * @param string $value 値
100
    * @param integer $col 行
101
    * @param integer $row 列
102
    * @param integer $sheetNo シート番号
103
    * @param integer $refCol 参照セル行
104
    * @param integer $refRow 参照セル列
105
    * @param integer $refSheet 参照シート
106
    * @author hagiwara
107
    */
108
    public function setVal($value, $col, $row, $sheetNo = 0, $refCol = null, $refRow = null, $refSheet = 0)
109
    {
110
        $cellInfo = $this->cellInfo($col, $row);
111
        //値のセット
112
        $this->getSheet($sheetNo)->setCellValue($cellInfo, $value);
113
114
        //参照セルの指定がある場合には書式をコピーする
115
        if (!is_null($refCol) && !is_null($refRow)) {
116
            $this->styleCopy($col, $row, $sheetNo, $refCol, $refRow, $refSheet);
117
        }
118
    }
119
120
    /**
121
    * setImage
122
    * 画像のセット
123
    * @param string $img 画像のファイルパス
124
    * @param integer $col 行
125
    * @param integer $row 列
126
    * @param integer $sheetNo シート番号
127
    * @param integer $height 画像の縦幅
128
    * @param integer $width 画像の横幅
129
    * @param boolean $proportial 縦横比を維持するか
130
    * @param integer $offsetx セルから何ピクセルずらすか(X軸)
131
    * @param integer $offsety セルから何ピクセルずらすか(Y軸)
132
    * @author hagiwara
133
    */
134
    public function setImage($img, $col, $row, $sheetNo = 0, $height = null, $width = null, $proportial = false, $offsetx = null, $offsety = null)
135
    {
136
        $cellInfo = $this->cellInfo($col, $row);
137
138
        $objDrawing = new PHPExcel_Worksheet_Drawing();//画像用のオプジェクト作成
139
        $objDrawing->setPath($img);//貼り付ける画像のパスを指定
140
        $objDrawing->setCoordinates($cellInfo);//位置
141
        if (!is_null($height)) {
142
            $objDrawing->setHeight($height);//画像の高さを指定
143
        }
144
        if (!is_null($width)) {
145
            $objDrawing->setWidth($width);//画像の高さを指定
146
        }
147
        if (!is_null($proportial)) {
148
            $objDrawing->setResizeProportional($proportial);//縦横比の変更なし
149
        }
150
        if (!is_null($offsetx)) {
151
            $objDrawing->setOffsetX($offsetx);//指定した位置からどれだけ横方向にずらすか。
152
        }
153
        if (!is_null($offsety)) {
154
            $objDrawing->setOffsetY($offsety);//指定した位置からどれだけ縦方向にずらすか。
155
        }
156
        $objDrawing->setWorksheet($this->getSheet($sheetNo));
157
    }
158
159
    /**
160
    * cellMerge
161
    * セルのマージ
162
    * @param integer $col1 行
163
    * @param integer $row1 列
164
    * @param integer $col2 行
165
    * @param integer $row2 列
166
    * @param integer $sheetNo シート番号
167
    * @author hagiwara
168
    */
169
    public function cellMerge($col1, $row1, $col2, $row2, $sheetNo)
170
    {
171
        $cell1Info = $this->cellInfo($col1, $row1);
172
        $cell2Info = $this->cellInfo($col2, $row2);
173
174
        $this->getSheet($sheetNo)->mergeCells($cell1Info . ':' . $cell2Info);
175
    }
176
177
178
    /**
179
    * styleCopy
180
    * セルの書式コピー
181
    * @param integer $col 行
182
    * @param integer $row 列
183
    * @param integer $sheetNo シート番号
184
    * @param integer $refCol 参照セル行
185
    * @param integer $refRow 参照セル列
186
    * @param integer $refSheet 参照シート
187
    * @author hagiwara
188
    */
189
    public function styleCopy($col, $row, $sheetNo, $refCol, $refRow, $refSheet)
190
    {
191
        $cellInfo = $this->cellInfo($col, $row);
192
        $refCellInfo = $this->cellInfo($refCol, $refRow);
193
        $style = $this->getSheet($refSheet)->getStyle($refCellInfo);
194
195
        $this->getSheet($sheetNo)->duplicateStyle($style, $cellInfo);
196
    }
197
198
    /**
199
    * setStyle
200
    * 書式のセット(まとめて)
201
    * @param integer $col 行
202
    * @param integer $row 列
203
    * @param integer $sheetNo シート番号
204
    * @param array $style スタイル情報
205
    * @author hagiwara
206
    */
207
    public function setStyle($col, $row, $sheetNo, $style)
208
    {
209
        $default_style = [
210
            'font' => null,
211
            'underline' => null,
212
            'bold' => null,
213
            'italic' => null,
214
            'strikethrough' => null,
215
            'color' => null,
216
            'size' => null,
217
            'alignh' => null,
218
            'alignv' => null,
219
            'bgcolor' => null,
220
            'bgpattern' => null,
221
        ];
222
        $style = array_merge($default_style, $style);
223
        $this->setFontName($col, $row, $sheetNo, $style['font']);
224
        $this->setUnderline($col, $row, $sheetNo, $style['underline']);
225
        $this->setFontBold($col, $row, $sheetNo, $style['bold']);
226
        $this->setItalic($col, $row, $sheetNo, $style['italic']);
227
        $this->setStrikethrough($col, $row, $sheetNo, $style['strikethrough']);
228
        $this->setColor($col, $row, $sheetNo, $style['color']);
229
        $this->setSize($col, $row, $sheetNo, $style['size']);
230
        $this->setAlignHolizonal($col, $row, $sheetNo, $style['alignh']);
231
        $this->setAlignVertical($col, $row, $sheetNo, $style['alignv']);
232
        $this->setBackgroundColor($col, $row, $sheetNo, $style['bgcolor'], $style['bgpattern']);
233
    }
234
235
    /**
236
    * setFontName
237
    * フォントのセット
238
    * @param integer $col 行
239
    * @param integer $row 列
240
    * @param integer $sheetNo シート番号
241
    * @param string|null $fontName フォント名
242
    * @author hagiwara
243
    */
244
    public function setFontName($col, $row, $sheetNo, $fontName)
245
    {
246
        if (is_null($fontName)) {
247
            return;
248
        }
249
        $this->getFont($col, $row, $sheetNo)->setName($fontName);
250
    }
251
252
    /**
253
    * setUnderline
254
    * 下線のセット
255
    * @param integer $col 行
256
    * @param integer $row 列
257
    * @param integer $sheetNo シート番号
258
    * @param boolean|null $underline 下線を引くか
259
    * @author hagiwara
260
    */
261
    public function setUnderline($col, $row, $sheetNo, $underline)
262
    {
263
        if (is_null($underline)) {
264
            return;
265
        }
266
        $this->getFont($col, $row, $sheetNo)->setUnderline($underline);
267
    }
268
269
    /**
270
    * setFontBold
271
    * 太字のセット
272
    * @param integer $col 行
273
    * @param integer $row 列
274
    * @param integer $sheetNo シート番号
275
    * @param boolean|null $bold 太字を引くか
276
    * @author hagiwara
277
    */
278
    public function setFontBold($col, $row, $sheetNo, $bold)
279
    {
280
        if (is_null($bold)) {
281
            return;
282
        }
283
        $this->getFont($col, $row, $sheetNo)->setBold($bold);
284
    }
285
286
    /**
287
    * setItalic
288
    * イタリックのセット
289
    * @param integer $col 行
290
    * @param integer $row 列
291
    * @param integer $sheetNo シート番号
292
    * @param boolean|null $italic イタリックにするか
293
    * @author hagiwara
294
    */
295
    public function setItalic($col, $row, $sheetNo, $italic)
296
    {
297
        if (is_null($italic)) {
298
            return;
299
        }
300
        $this->getFont($col, $row, $sheetNo)->setItalic($italic);
301
    }
302
303
    /**
304
    * setStrikethrough
305
    * 打ち消し線のセット
306
    * @param integer $col 行
307
    * @param integer $row 列
308
    * @param integer $sheetNo シート番号
309
    * @param boolean|null $strikethrough 打ち消し線をつけるか
310
    * @author hagiwara
311
    */
312
    public function setStrikethrough($col, $row, $sheetNo, $strikethrough)
313
    {
314
        if (is_null($strikethrough)) {
315
            return;
316
        }
317
        $this->getFont($col, $row, $sheetNo)->setStrikethrough($strikethrough);
318
    }
319
320
    /**
321
    * setColor
322
    * 文字の色
323
    * @param integer $col 行
324
    * @param integer $row 列
325
    * @param integer $sheetNo シート番号
326
    * @param string|null $color 色(ARGB)
327
    * @author hagiwara
328
    */
329
    public function setColor($col, $row, $sheetNo, $color)
330
    {
331
        if (is_null($color)) {
332
            return;
333
        }
334
        $this->getFont($col, $row, $sheetNo)->getColor()->setARGB($color);
335
    }
336
337
    /**
338
    * setSize
339
    * 文字サイズ
340
    * @param integer $col 行
341
    * @param integer $row 列
342
    * @param integer $sheetNo シート番号
343
    * @param integer|null $size
344
    * @author hagiwara
345
    */
346
    public function setSize($col, $row, $sheetNo, $size)
347
    {
348
        if (is_null($size)) {
349
            return;
350
        }
351
        $this->getFont($col, $row, $sheetNo)->setSize($size);
352
    }
353
354
    /**
355
    * getFont
356
    * fontデータ取得
357
    * @param integer $col 行
358
    * @param integer $row 列
359
    * @param integer $sheetNo シート番号
360
    * @author hagiwara
361
    */
362
    private function getFont($col, $row, $sheetNo)
363
    {
364
        $cellInfo = $this->cellInfo($col, $row);
365
        return $this->getSheet($sheetNo)->getStyle($cellInfo)->getFont();
366
    }
367
368
    /**
369
    * setAlignHolizonal
370
    * 水平方向のalign
371
    * @param integer $col 行
372
    * @param integer $row 列
373
    * @param integer $sheetNo シート番号
374
    * @param string|null $type
375
    * typeはgetAlignHolizonalType参照
376
    * @author hagiwara
377
    */
378 View Code Duplication
    public function setAlignHolizonal($col, $row, $sheetNo, $type)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
379
    {
380
        if (is_null($type)) {
381
            return;
382
        }
383
        $cellInfo = $this->cellInfo($col, $row);
384
        $this->getSheet($sheetNo)->getStyle($cellInfo)->getAlignment()->setHorizontal($this->getAlignHolizonalType($type));
385
    }
386
387
    /**
388
    * setAlignVertical
389
    * 垂直方法のalign
390
    * @param integer $col 行
391
    * @param integer $row 列
392
    * @param integer $sheetNo シート番号
393
    * @param string|null $type
394
    * typeはgetAlignVerticalType参照
395
    * @author hagiwara
396
    */
397 View Code Duplication
    public function setAlignVertical($col, $row, $sheetNo, $type)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
398
    {
399
        if (is_null($type)) {
400
            return;
401
        }
402
        $cellInfo = $this->cellInfo($col, $row);
403
        $this->getSheet($sheetNo)->getStyle($cellInfo)->getAlignment()->setVertical($this->getAlignVerticalType($type));
404
    }
405
406
    /**
407
    * setBorder
408
    * 罫線の設定
409
    * @param integer $col 行
410
    * @param integer $row 列
411
    * @param integer $sheetNo シート番号
412
    * @param array $border
413
    * borderの内部はgetBorderType参照
414
    * @author hagiwara
415
    */
416
    public function setBorder($col, $row, $sheetNo, $border)
417
    {
418
        $cellInfo = $this->cellInfo($col, $row);
419
        $default_border = [
420
            'left' => null,
421
            'right' => null,
422
            'top' => null,
423
            'bottom' => null,
424
            'diagonal' => null,
425
            'all_borders' => null,
426
            'outline' => null,
427
            'inside' => null,
428
            'vertical' => null,
429
            'horizontal' => null,
430
        ];
431
        $border = array_merge($default_border, $border);
432
        foreach ($border as $border_position => $border_setting) {
433
            if (!is_null($border_setting)) {
434
                $borderInfo =  $this->getSheet($sheetNo)->getStyle($cellInfo)->getBorders()->{'get' . $this->camelize($border_position)}();
435
                if (array_key_exists('type', $border_setting)) {
436
                    $borderInfo->setBorderStyle($this->getBorderType($border_setting['type']));
437
                }
438
                if (array_key_exists('color', $border_setting)) {
439
                    $borderInfo->getColor()->setARGB($border_setting['color']);
440
                }
441
            }
442
        }
443
    }
444
445
    /**
446
    * setBackgroundColor
447
    * 背景色の設定
448
    * @param integer $col 行
449
    * @param integer $row 列
450
    * @param integer $sheetNo シート番号
451
    * @param string $color 色
452
    * @param string $fillType 塗りつぶし方(デフォルトsolid)
453
    * fillTypeの内部はgetFillType参照
454
    * @author hagiwara
455
    */
456
    public function setBackgroundColor($col, $row, $sheetNo, $color, $fillType = 'solid')
457
    {
458
        $cellInfo = $this->cellInfo($col, $row);
459
460
        $this->getSheet($sheetNo)->getStyle($cellInfo)->getFill()->setFillType($this->getFillType($fillType))->getStartColor()->setARGB($color);
461
    }
462
463
    /**
464
    * getBorderType
465
    * 罫線の種類の設定
466
    * @param string $type
467
    * @author hagiwara
468
    */
469
    private function getBorderType($type)
470
    {
471
        $type_list = self::$__borderType;
472
        if (array_key_exists($type, $type_list)) {
473
            return $type_list[$type];
474
        }
475
        return PHPExcel_Style_Border::BORDER_NONE;
476
    }
477
478
    /**
479
    * getAlignHolizonalType
480
    * 水平方向のAlignの設定
481
    * @param string $type
482
    * @author hagiwara
483
    */
484
    private function getAlignHolizonalType($type)
485
    {
486
        $type_list = self::$__alignHolizonalType;
487
        if (array_key_exists($type, $type_list)) {
488
            return $type_list[$type];
489
        }
490
        return PHPExcel_Style_Alignment::HORIZONTAL_GENERAL;
491
    }
492
493
    /**
494
    * getAlignVerticalType
495
    * 垂直方向のAlignの設定
496
    * @param string $type
497
    * @author hagiwara
498
    */
499
    private function getAlignVerticalType($type)
500
    {
501
        $type_list = self::$__alignVerticalType;
502
        if (array_key_exists($type, $type_list)) {
503
            return $type_list[$type];
504
        }
505
        return null;
506
    }
507
508
    /**
509
    * getFillType
510
    * 塗りつぶしの設定
511
    * @param string $type
512
    * @author hagiwara
513
    */
514
    private function getFillType($type)
515
    {
516
        $type_list = self::$__fillType;
517
        if (array_key_exists($type, $type_list)) {
518
            return $type_list[$type];
519
        }
520
        return PHPExcel_Style_Fill::FILL_SOLID;
521
    }
522
523
    /**
524
    * createSheet
525
    * シートの作成
526
    * @param string $name
527
    * @author hagiwara
528
    */
529
    public function createSheet($name = null)
530
    {
531
        //シートの新規作成
532
        $newSheet = $this->__phpexcel->createSheet();
533
        $sheetNo = $this->__phpexcel->getIndex($newSheet);
534
        $this->__sheet[$sheetNo] = $newSheet;
535
        if (!is_null($name)) {
536
            $this->renameSheet($sheetNo, $name);
537
        }
538
    }
539
540
    /**
541
    * deleteSheet
542
    * シートの削除
543
    * @param integer $sheetNo
544
    * @author hagiwara
545
    */
546
    public function deleteSheet($sheetNo)
547
    {
548
        //シートの削除は一番最後に行う
549
        $this->__deleteSheetList[] = $sheetNo;
550
    }
551
552
    /**
553
    * copySheet
554
    * シートのコピー
555
    * @param integer $sheetNo
556
    * @param integer $position
557
    * @param string $name
558
    * @author hagiwara
559
    */
560
    public function copySheet($sheetNo, $position = null, $name = null)
561
    {
562
        $base = $this->getSheet($sheetNo)->copy();
563
        if ($name === null) {
564
            $name = uniqid();
565
        }
566
        $base->setTitle($name);
567
568
        // $positionが null(省略時含む)の場合は最後尾に追加される
569
        $this->__phpexcel->addSheet($base, $position);
570
    }
571
572
    /**
573
    * renameSheet
574
    * シート名の変更
575
    * @param integer $sheetNo
576
    * @param string $name
577
    * @author hagiwara
578
    */
579
    public function renameSheet($sheetNo, $name)
580
    {
581
        $this->__sheet[$sheetNo]->setTitle($name);
582
    }
583
584
    /**
585
    * write
586
    * xlsxファイルの書き込み
587
    * @param string $file 書き込み先のファイルパス
588
    * @author hagiwara
589
    */
590
    public function write($file, $type = 'Excel2007')
591
    {
592
        //書き込み前に削除シートを削除する
593
        foreach ($this->__deleteSheetList as $deleteSheet) {
594
            $this->__phpexcel->removeSheetByIndex($deleteSheet);
595
        }
596
        $writer = PHPExcel_IOFactory::createWriter($this->__phpexcel, $type);
597
        $writer->save($file);
598
    }
599
600
    /**
601
    * getReader
602
    * readerを返す(※直接PHPExcelの関数を実行できるように)
603
    * @author hagiwara
604
    */
605
    public function getReader()
606
    {
607
        return $this->__phpexcel;
608
    }
609
610
    /**
611
    * getSheet
612
    * シート情報の読み込み
613
    * @param integer $sheetNo シート番号
614
    * @author hagiwara
615
    * @return null|\PHPExcel_Worksheet
616
    */
617
    private function getSheet($sheetNo)
618
    {
619
        if (!array_key_exists($sheetNo, $this->__sheet)) {
620
            $this->__sheet[$sheetNo] = $this->__phpexcel->setActiveSheetIndex(0);
621
        }
622
        return $this->__sheet[$sheetNo];
623
    }
624
625
    /**
626
    * cellInfo
627
    * R1C1参照をA1参照に変換して返す
628
    * @param integer $col 行
629
    * @param integer $row 列
630
    * @author hagiwara
631
    */
632
    private function cellInfo($col, $row)
633
    {
634
        $stringCol = PHPExcel_Cell::stringFromColumnIndex($col);
635
        return $stringCol . $row;
636
    }
637
638
    /**
639
    * cellInfo
640
    * http://qiita.com/Hiraku/items/036080976884fad1e450
641
    * @param string $str
642
    */
643
    private function camelize($str)
644
    {
645
        $str = ucwords($str, '_');
646
        return str_replace('_', '', $str);
647
    }
648
}
649