0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excelでデータ検証を適用または解除する方法(Java)

Last updated at Posted at 2022-09-27

Excelのデータ検証機能は、特定のセルに入力できるデータ、または入力すべきデータを制限することができます。例えば、Excelで商品の顧客満足度の指数を収集する場合、1~10までの任意の数値を入力してもらうことができます。
この記事では、無料のFree Spire.XLS for Javaを使用して、Excelのセルに各種データ検証(数値検証、文字長検証、日付検証、時刻検証、リスト検証など)を適用する方法と、指定したセル内のデータ検証を解除する方法について説明します。

【依存関係の追加】

この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

2. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.XLS for Java の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。

Excelのセルにデータ検証を適用する

Spire.XLS for Javaを使用して、セルに様々な種類のデータ検証を追加する手順を説明します。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.getWorksheets().get() メソッドを使用して、最初のワークシートを取得します。
  • Worksheet.getCellRange() メソッドを使用して特定のセル範囲を取得し、データ検証を追加します。
  • CellRange.getDataValidation().setAllowType() メソッドを使用して、セルで許可されるデータ型を設定します。データ型はInteger、Time、Date、TextLength、Decimalなどが選択可能です。
  • CellRange.getDataValiation().setCompareOperator() メソッドを使用して、比較演算子を設定します。比較演算子には、Between、NotBetween、Less、Greater、Equalがあります。
  • CellRange.getDataValidation().setFormula1()CellRange.getDataValidation().setFormula2() メソッドを使用して、データ検証用の数式を 1 つまたは 2 つ設定します。
  • CellRange.getDataValidation().setInputMessage() メソッドを使用して入力プロンプトを設定します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックをExcelファイルに保存します。

Java

import com.spire.xls.*;

public class applyDataValidation {

    public static void main(String[] args) {

        //Workbook クラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //最初のワークシートを取得する
        Worksheet sheet = workbook.getWorksheets().get(0);

        //セルにテキストを挿入する
        sheet.getCellRange("B2").setText("数字を入力してください:");
        sheet.getCellRange("B4").setText("日付を入力してください:");
        sheet.getCellRange("B6").setText("テキストを入力してください:");
        sheet.getCellRange("B8").setText("リストから項目を選択してください:");
        sheet.getCellRange("B10").setText("時間を入力してください:");

        //C2に数値検証を追加する
        CellRange rangeNumber = sheet.getCellRange("C2");
        rangeNumber.getDataValidation().setAllowType(CellDataType.Integer);
        rangeNumber.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
        rangeNumber.getDataValidation().setFormula1("1");
        rangeNumber.getDataValidation().setFormula2("10");
        rangeNumber.getDataValidation().setInputMessage("1〜10までの数字を入力してください。");
        rangeNumber.getStyle().setKnownColor(ExcelColors.BlueGray);

        //C4に数値検証を追加する
        CellRange rangeDate = sheet.getCellRange("C4");
        rangeDate.getDataValidation().setAllowType(CellDataType.Date);
        rangeDate.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
        rangeDate.getDataValidation().setFormula1("2010/1/1");
        rangeDate.getDataValidation().setFormula2("2020/12/31");
        rangeDate.getDataValidation().setInputMessage("2010/1/1~2020/12/31の間で日付を入力してください。");
        rangeDate.getStyle().setKnownColor(ExcelColors.BlueGray);

        //C6に数値検証を追加する
        CellRange rangeTextLength = sheet.getCellRange("C6");
        rangeTextLength.getDataValidation().setAllowType(CellDataType.TextLength);
        rangeTextLength.getDataValidation().setCompareOperator(ValidationComparisonOperator.LessOrEqual);
        rangeTextLength.getDataValidation().setFormula1("5");
        rangeTextLength.getDataValidation().setInputMessage("5文字以内で入力してください。");
        rangeTextLength.getStyle().setKnownColor(ExcelColors.BlueGray);

        //C8に数値検証を追加する
        CellRange rangeList = sheet.getCellRange("C8");
        rangeList.getDataValidation().setValues(new String[] { "米国", "カナダ", "英国", "ドイツ" }) ;
        rangeList.getDataValidation().isSuppressDropDownArrow(false);
        rangeList.getDataValidation().setInputMessage("リストから項目を選択してください。");
        rangeList.getStyle().setKnownColor(ExcelColors.BlueGray);

        //C10に数値検証を追加する
        CellRange rangeTime = sheet.getCellRange("C10");
        rangeTime.getDataValidation().setAllowType(CellDataType.Time);
        rangeTime.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
        rangeTime.getDataValidation().setFormula1("9:00");
        rangeTime.getDataValidation().setFormula2("12:00");
        rangeTime.getDataValidation().setInputMessage("9:00〜12:00の間で時間を入力してください。");
        rangeTime.getStyle().setKnownColor(ExcelColors.BlueGray);

        //列2の幅の自動調整を設定する
        sheet.autoFitColumn(2);

        //列3の幅を設定する
        sheet.getColumns()[2].setColumnWidth(20);

        //ファイルに保存する
        workbook.saveToFile("データ検証の適用.xlsx", ExcelVersion.Version2016);
    }
}

【結果のExcelファイル】

Excelのセルにデータ検証を適用する

Excelのセルからデータ検証を削除する

以下は、Spire.XLS for Javaを使用して、指定したセルのデータ検証を解除する手順です。

  • Workbook クラスのオブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、データ検証を含むExcelファイルを読み込みます。
  • Workbook.getWorksheets().get() メソッドを使用して、最初のワークシートを取得します。
  • 検証を除去するセルを配置する矩形の配列を作成します。
  • Worksheet.getDVTable().remove() メソッドを使用して、選択したセルからデータ検証を削除します。
  • Workbook.saveToFile() メソッドを使用して、ワークブックをExcelファイルに保存します。
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

import java.awt.*;

public class removeDataValidation {

    public static void main(String[] args) {

        //Workbook クラスのオブジェクトを作成する
        Workbook workbook = new Workbook();

        //Excelファイルを読み込む
        workbook.loadFromFile("データ検証の適用.xlsx");

        //最初のワークシートを取得する
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //ワークシートの範囲を特定するための矩形の配列を作成する
        Rectangle[] rectangles = new Rectangle[]{

                //1つの矩形(columnIndex, rowIndex)は特定のセルを指定し,列または行のインデックスは0から始まる
                //セル範囲を指定するには、Rectangle(startColumnIndex, startRowIndex, endColumnIndex, endRowIndex) を使用する
                new Rectangle(2,1),
                new Rectangle(2,3),
                new Rectangle(2,5),
                new Rectangle(2,7),
                new Rectangle(2,9)
        };

        //選択したセルからデータ検証を削除する
        worksheet.getDVTable().remove(rectangles);

        //ワークブックをExcelファイルに保存する
        workbook.saveToFile("データ検証の削除.xlsx");
    }
}

【結果のExcelファイル】

Excelのセルからデータ検証を削除する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?