---
# System prepended metadata

title: PhpSpreadsheet VS LibXL
tags: [LibXL]

---

# PhpSpreadsheet VS LibXL
お互い計300セルにテキストを入れる（LibXLの無料枠が300セルまで）
[実際の出力ファイル（厳密な対照実験にはなっていません）](https://drive.google.com/drive/folders/1EkAc7Hh51g8LGCNkJ9BvvSSSeXILIBsh?usp=sharing)

### 1. 各セルにボーダー

PhpSpreadsheet
```
running time: 0.3099570274353 [s]  
used memory: 1.3541641235352 [MB]  
```
LibXL
```
running time: 0.0025310516357422 [s]  
used memory: 0.01031494140625 [MB]  
```

### 2. 色々スタイルをつけてみる
PhpSpreadsheet
```
running time: 0.27290892601013 [s]  
used memory: 1.3562316894531 [MB]  
```
LibXL
```
running time: 0.0045468807220459 [s]  
used memory: 0.01031494140625 [MB]   
```

### 3. スタイルを付けつつセル5枚のシートに分けて出力

PhpSpreadsheet
```
running time: 0.14717507362366 [s]  
used memory: 1.3424301147461 [MB]  
```

LibXL
```
running time: 0.0058050155639648 [s]  
used memory: 0.01031494140625 [MB]  
```

### 4. スタイルを付けつつセル300枚のシートに分けて出力

PhpSpreadsheet
```
running time: 4.7318830490112 [s]  
used memory: 3.7640533447266 [MB]  
```

LibXL
```
running time: 0.10773205757141 [s]  
used memory: 0.01031494140625 [MB]  
```

# まとめ

## メモリと実行時間

### PhpSpreadsheet

主にメソッドの呼び出し回数、またはメソッドの種類に応じて実行時間が変動する。
また、広範囲のセルに対する変更は時間がかかる。

### LibXL
使用メモリが少ない。

## ライブラリの使いやすさ

### PhpSpreadsheet
メソッドや文献が豊富。
もしかすると`PhpSpreadsheet`にできて`LibXL`だと出来ないこともあるかもしれない。
実行時間を考えると、メソッドの書き方やメモリ使用量などに留意する必要がある。

### LibXL
オブジェクト指向であるため、型のないPHPでも引数などがわかりやすい。
VSCodeの参照しているPHPの環境でLibXLをセットアップしないと、メソッドなどの補完が効かない（構文エラーも出る）。