概要
バージョンアップ後のLaravel-Excelが旧バージョンのものと大きく違ったので,ビューで指定できるスタイルをまとめました.
目盛線を消したり,印刷の向きを変える方法はこちらにまとめました.
環境
- Laravel 5.5
- Laravel-Excel 3.1
設定できるスタイル
スタイルの設定方法
<th>,<td>
で直接styleを指定することで設定できます.CSSを使う方法は調査中です.
例
<th style="font-size: 16px;"></th>
<td style="border: 1px solid #000000;"></td>
スタイルを複数設定する場合は必ずセミコロン ;
で区切ります.
セルの結合
HTMLのセルの結合を行うことで実装する.
<td colspan="2"></td> <!-- 列の結合 -->
<td rowspan="2"></td> <!-- 行の結合 -->
結合したセルのスタイルは左上のセルのスタイルが適用されます.
結合されたセルはスタイル設定ができなくなります.
フォントの設定
デフォルトは11pxです.
HTMLタグで指定
<h1> , <h2> , <h3> , <h4> , <h5> , <h6>
ボールド体になり,サイズが24px, 18px, 13.5px, 12px, 10px, 7.5px になります.
<a>
色が青色になり,下線が引かれます.
<hr>
黒の下線が引かれます.
<strong> , <b>
ボールド体になります.
<i> , <em>
イタリック体になります.
使えるスタイル一覧
次のスタイルが使えます:
<td style="background: #FF0000;"></td> <!-- 背景色 -->
<td style="background-color: #FF0000;"></td> <!-- backgroundと同じ -->
<td style="border: 1px solid #000000;"></td> <!-- すべての罫線を指定する 個別指定はできない -->
<td style="border-top: 1px solid #000000;"></td>
<td style="border-right: 1px solid #000000;"></td>
<td style="border-bottom: 1px solid #000000;"></td>
<td style="border-left: 1px solid #000000;"></td>
<td style="font-size: 16px;"></td>
<td style="color: #FF0000;"></td> <!-- フォントカラー -->
<td style="font-weight: 500;"></td> <!-- 500以上でボールド体 -->
<td style="font-style: italic;"></td>
<td style="font-family: font1 font2;"></td>
<td style="text-decoration: underline;"></td>
<td style="text-decoration: line-tdrough;"></td>
<td style="text-align: center;"></td> <!-- 水平方向 left , center , right -->
<td style="vertical-align: middle;"></td> <!-- 垂直方向 top , middle , bottom -->
<td style="width: 10px;"></td> <!-- セルの横幅 指定した最後の行の幅が適用される -->
<td style="height: 10px;"></td> <!-- セルの縦幅 指定した最後の列の高さが適用される -->
<td style="word-wrap: break-word;"></td> <!-- 折返し -->
<td style="text-indent: 2px;"></td>
罫線の種類
<td style="border: 1px solid #000000;"></td>
このようにすると,黒色の細い線でセルが囲まれますが,設定できるのはsolid #000000
の部分
のみで,罫線の種類は
スタイル | PHP Excel |
---|---|
solid | BORDER_THIN |
dashed | BORDER_DASHED |
dotted | BORDER_DOTTED |
medium | BORDER_MEDIUM |
thick | BORDER_THICK |
none | BORDER_NONE |
dash-dot | BORDER_DASHDOT |
dash-dot-dot | BORDER_DASHDOTDOT |
double | BORDER_DOUBLE |
hair | BORDER_HAIR |
medium-dash-dot | BORDER_MEDIUMDASHDOT |
medium-dash-dot-dot | BORDER_MEDIUMDASHDOTDOT |
medium-dashed | BORDER_MEDIUMDASHED |
slant-dash-dot | BORDER_SLANTDASHDOT |
から選びます.1px
の部分は適用されませんが,必須です.
フォーマット
<td data-format="0.00"></td>
このように指定したフォーマットがそのままユーザ定義のフォーマットになります.
よく使われるフォーマットが組み込まれていました:
"0"
"0.00"
"#,##0"
"#,##0.00"
"0%"
"0.00%"
"0.00E+00"
"# ?/?"
"# ??/??"
"m/d/yyyy" // Despite ECMA 'mm-dd-yy"
"d-mmm-yy"
"d-mmm"
"mmm-yy"
"h:mm AM/PM"
"hss AM/PM"
"h:mm"
"hss"
"m/d/yyyy h:mm" // Despite ECMA 'm/d/yy h:mm"
"#,##0_);(#,##0)" // Despite ECMA '#,##0 ;(#,##0)"
"#,##0_);Red" // Despite ECMA '#,##0 ;Red"
"#,##0.00_);(#,##0.00)" // Despite ECMA '#,##0.00;(#,##0.00)"
"#,##0.00_);Red" // Despite ECMA '#,##0.00;Red"
"('$'* #,##0.00);('$'* (#,##0.00);('$'* '-'??);(@_)"
"mm:ss"
"[h]ss"
"mm:ss.0" // Despite ECMA 'mmss.0"
"##0.0E+0"
"@"
// CHT
"[$-404]e/m/d"
"m/d/yy"
"[$-404]e/m/d"
"[$-404]e/m/d"
"[$-404]e/m/d"
// THA
"t0"
"t0.00"
"t#,##0"
"t#,##0.00"
"t0%"
"t0.00%"
"t# ?/?"
"t# ??/??"
// JPN
"[$-411]ggge'年'm'月'd'日'"
"[$-411]ggge'年'm'月'd'日'"
"yyyy'年'm'月'd'日'"
"h'時'mm'分'"
"h'時'mm'分'ss'秒'"
"yyyy'年'm'月'"
"m'月'd'日'"
"[$-411]ggge'年'm'月'd'日'"
"yyyy'年'm'月'"
"m'月'd'日'"
"[$-411]ggge'年'm'月'd'日'"
"yyyy'年'm'月'"
"m'月'd'日'"
"[$-411]ggge'年'm'月'd'日'"
> これを
>
```html
<td data-format="[$-411]ggge'年'm'月'd'日'">{{ $date }}</td>
このようにして使います.
感想
新しいLaravel-Excelは機能は旧バージョンに比べると機能が少なくなっています.どうしてもの場合は旧バージョンを使わざるを得ないでしょう.
他に良いパッケージがあれば教えてくださるとありがたいです.