業務系アプリでExcelを出力する機能で謎のバグが。
結論を言うと、シート名にExcelのシート名で使用できない文字が含まれていたため、プログラムでエラーが発生した。エラーキャッチくらい書けということもあるが、そもそもExcelの仕様を考えていないために起こったバグで、DBでもExcelファイルでも、プログラム連携するものの仕様は考慮する必要があるなと思った。
特に書くこともないので、Excelのファイル名、シート名で使用できない文字をまとめてみる。
一応PHPなんてタイトルに書いてあるけど、PHPに限らずな話題であると思うので参考にしてもらえたらと思う。
これらの文字は削除や置換する必要がある。
シート名で使用できない文字
- コロン(:)
- 円記号(\)
- 疑問符(?)
- 角括弧([])
- スラッシュ(/)
- アスタリスク(*)
- シングルクオーテーション(‘)
- 何もない()
また、入力文字数が32文字以内でないといけないそう。
ファイル名で使用できない文字
- 円記号(\)
- スラッシュ(/)
- コロン(:)
- アスタリスク(*)
- 疑問符(?)
- ダブルクォーテーション(“)
- 不等号(<>)
- 縦棒(|)
ファイル名については、Excelファイルでなくても考慮が必要になりそう。