もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

phpspreadsheetでは checkboxの値を取得できない?

はじめに

こんばんは。

phpspreadsheetを久々に触る機会があって、ちょっと悩んで、結局できなかったので悩んだ結果を備忘録しておきます。

本題

今回 phpspreadsheetでcheckboxの値を取りたいという感じだったのですが、色々調べて取れませんでした...

forums.phpfreaks.com

いろいろ同じように悩んでいる方がいたのですが、やっぱり取れないみたいです。

で、僕が対応したのは以下のやり方。

根本解決にはなってないんですが、こうすれば、とれます。

  1. チェックボックスのコントロールの書式設定から リンクするセル を選択
  2. 任意のセルを選択して完了
  3. チェックボックスのon/offに連動して選択したセルに FALSE TRUE が表示されるようになる
  4. 選択したセルの書式設定でフォントの色を背景色と同じにする

gyazo.com

文字色が背景色と同化するので、一見はチェックボックスだけのon/offにみえます...w

この仕込みができれば、あとは通常通り IOFactory::load() とかでエクセルファイルを読み込んで $sheet->getValue() を実行すると booleanのtrue/false が取得できます。

終わりに

根本解決にはなってないんですが、一旦はこれで取れるようになりました。

ただ、もちろんこの仕込みがないと現状はチェックボックスの値は取得できないので、別アプローチあれば教えてもらえたら嬉しいです。

現場からは以上です。