3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LaravelExcelの2系を使っていてセル関数が計算されなくなっちゃった

Posted at

結論

いきなり結論から書くと、LaravelExcelのconfigファイル

config/excel.php
/*
|--------------------------------------------------------------------------
| Pre-calculate formulas during export
|--------------------------------------------------------------------------
*/
'calculate'                   => false,

これを true とする事で解決。セル関数が計算されるようになりました。

PHPExcelを直接つかっている場合は PHPExcel/Classes/PHPExcel/Writer/Abstract.php に
preCalculateFormulasプロパティを変更するためのメソッドが用意されているので
これを利用すると良いと思います。
https://github.com/PHPOffice/PHPExcel/blob/1.8/Classes/PHPExcel/Writer/Abstract.php#L110

LaravelExcelのバージョン

2.1.xx

2系はPHPExcelのラッパーになっていて
3系はPHPSpreadsheetのラッパーになっているみたいです。

PHPExcelは開発終了していることもあって LaravelExcelの2系も2018年5月15日にEOLを迎えるようです。
https://github.com/Maatwebsite/Laravel-Excel

ケース

Laravelを使ったWebサイトで、雛形となるExcelシートに値を埋めてダウンロードする機能がありました。
Excelシートにはセル関数もあって、プログラムがセットした値を元に集計値とか出るようになっていました。

症状

ある日を境にセル関数が計算されなくなってしまいました。
ダウンロードしたエクセルを開くとセル関数が消えているわけでもないのに、計算されていないのです。
セル関数が消えてしまっているわけではなく、対象のセルを一度「編集状態」にするとしっかり計算される状況。
なんでやねん。
Excelの計算方式も「自動」になっているのに。。

原因

Office365のバージョンアップが影響している模様で
Twiiterとか見てるとちらほら困っている人がいるようですね。

こちらの記事でも紹介されていました。
https://qiita.com/makasn/items/98b4995266661ec1659f
https://qiita.com/no22@github/items/3401b10d2e389b9ed55e

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?