値がゼロの場合の表示設定
Excelではセルに設定された値が0だった場合にそのセルは値を非表示にする設定が可能です。Excel上でなら「ツール」>「オプション」>「表示」で設定可能な項目です。値が0だった場合に非表示に設定するにはSheetインターフェースで用意されているsetDisplayZerosメソッドを使います。
void setDisplayZeros(boolean value)
Set whether the window should show 0 (zero) in cells containing zero value. When false, cells with zero value appear blank instead of showing the number zero. Parameters: value - whether to display or hide all zero values on the worksheet
引数には値が0のときに表示するかどうかを表すboolean型の値を指定します。trueならば値が0であってもそのまま表示し、falseならば値が0の時は非表意にします。
実際の使い方は次のようになります。
InputStream in = new FileInputStream("filename.xls"); Workbook wb = WorkbookFactory.create(in); Sheet sheet = wb.getSheetAt(0); sheet.setDisplayZeros(false);
この場合、数式が設定されているセルは数式そのものが表示されます。
サンプルプログラム
実際に試してみましょう。
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import java.io.*; public class Sample9_1{ public static void main(String[] args){ FileInputStream in = null; Workbook wb = null; try{ in = new FileInputStream("sample.xls"); wb = WorkbookFactory.create(in); }catch(IOException e){ System.out.println(e.toString()); }catch(InvalidFormatException e){ System.out.println(e.toString()); }finally{ try{ in.close(); }catch (IOException e){ System.out.println(e.toString()); } } Sheet sheet0 = wb.getSheetAt(0); Sheet sheet1 = wb.getSheetAt(1); sheet0.setDisplayZeros(true); sheet1.setDisplayZeros(false); FileOutputStream out = null; try{ out = new FileOutputStream("sample9_1.xls"); wb.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
事前に下記のようなExcelファイルを用意してあります。二つのシートがあり、それぞれのシートには同じように3つのセルに数値が設定されています。
プログラムを実行すると、一つのシートはセルに設定された値が0の場合は非表示になるように設定します。では作成されたExcelファイルを開いてみます。
2つ目のシートではB3セルに設定されている値が0のため非表示となっています。なお非表示になっているだけで実際には0という値が設定されています。
上記のようにセルに値を合わせると0と表示されます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。