PHPExcelではまったこと2点

今、開発している案件でレポートをMySQLからデータを取得してPHPで加工してExcelファイルに書き出すなんてことをしています。テンプレートのExcelファイルを読んだり書いたりために、PHPExcelというライブラリを使っています。

PHPExcelを使って、はまったことが2つありました。一つはExcelファイルの特性かもしれません。

1点目。テンプレートのExcelファイルを更新してPHPExcelで読み込んでみても更新した前の内容のまま。

これは、Excelファイルの中にある元の履歴データからデータを取得しているようです。対処方法は、「名前を付けて保存」で上書き保存しました。もっとよい方法があるかもしれません。

2点目。セルに1文字だけだとUnknown Errorでそのセルが読み込めない。

これはPHPExcelの内部で使っているiconv_substr()のバグでしょうか? とりあえずセルを2文字以上に設定しています。PHPExcelのソースをいじればいいのでしょうね。

PHPのプログラミングに関係していない人には関係ない、自分のための覚え書きでした。

ユーザーと開発側との意見の食い違い

お客様との定例会議での話し。ユーザーと開発側との意見が食い違ったこと。ユーザーが当たり前にできなければいけないと思うことは、本当は実現にはとても大変であるということ。

ユーザーからは、入力したテキストをせっかくフォーマットしたのだからそのまま表示したいと要求がでてきました。テキストフォームに、例えば箇条書きの項目を入力したときに、改行がずれてしまうのは困るといったこと。プレーンなテキストしか入力できないフォームに、ご丁寧に改行でインデントして(例えば中点を最初の行に打って、2行目からは一文字開けて揃えるなど)表示するときにずれてしまうがクレームになっているとのこと。

見るブラウザによっても、フォントの大きさによっても違いますので、これは難しいと回答しましたが、ユーザーは納得できない様子。最低限でも、入力フォームと表示の横幅を合わせてほしいとのこと。しかし、表示のデザインがすべて変わるので対応するにもお金がかかる。プレーンなテキストではなくHTMLエディタで入力させて対応するも、セキュリティ上クリアしない問題もあり、一筋縄に行かない。ユーザーには、フォーマットしたテキストを入れないでくれとお願いしています。

最初から、ユーザーからこれは開発側のバグだと言われてしまうと、どのように対応するかなど考える前に引いてしまう。つまり、やる気がなくなるのです。予算もないしお金が出てこないことはわかりますので、何とかバグにして無償対応に持ってこようとするのはわかります。そこまでこちらとしてもできないので、必死に対応を阻止することになります。話しの持って行き方によっては、しかたないので対応しましょうとなりますが、今回はやらない方向に。まだまだ、義理人情の世界が残っているのです。