値がゼロの場合の表示設定

広告

Excelではセルに設定された値が0だった場合にそのセルは値を非表示にする設定が可能です。Excel上でなら「ツール」>「オプション」>「表示」で設定可能な項目です。値が0だった場合に非表示に設定するにはSheetインターフェースで用意されているsetDisplayZerosメソッドを使います。

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);

この場合、数式が設定されているセルは数式そのものが表示されます。

サンプルプログラム

実際に試してみましょう。

Sample9_1.java

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 )

関連記事 (一部広告含む)