【POI】シート名に使える文字列かどうか簡単に判断する方法



シート名が可変項目の場合、どうしてもチェックが必要になります(゚ー゚;Aアセアセ



チェックする内容は
文字数制限(31文字以内)
使えない半角記号「:コロン」「¥円記号」「/スラッシュ」「?はてなマーク」「*アスタリスク」「[左カッコ」「]右カッコ」
空白でないこと

の3つをチェックしなきゃいけない(;´∀`)


これをわざわざ正規表現使うのもどうかと思ってるみなさんに朗報です シャキ━━ヾ(`・ω・´)ノ━━ン



実はPOIがすでに用意してました(`・ω・´)


https://poi.apache.org/apidocs/org/apache/poi/ss/util/WorkbookUtil.html


WorkbookUtilを使用してください。
試してみた結果

// 文字数が多い場合、自動的に削る
System.out.println(WorkbookUtil.createSafeSheetName("あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ"));
System.out.println(WorkbookUtil.createSafeSheetName("あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ", '_'));

// 使えない文字列は自動的に置換
System.out.println(WorkbookUtil.createSafeSheetName("abcd****"));  // 半角スペースに近く
System.out.println(WorkbookUtil.createSafeSheetName("abcd****", '_'));  // 指定した文字列に置換

System.out.println(WorkbookUtil.createSafeSheetName("")); // empty に 変換

// Exception を出力
WorkbookUtil.validateSheetName("abcd****");





0 件のコメント:

コメントを投稿