チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.XLS for Java»セル»Java:Excel でデータの入力規則の適用と削除方法
2022-10-27

Java:Excel でデータの入力規則の適用と削除方法

Excel でデータの入力規則は、ワークシートに入力されるデータ型を制限するのに役立ちます。つまり、特定のセルに入力された値は、そのセルに設定された条件を満たす必要があります。たとえば、データの入力規則を作成することで、セルを整数のみを受け入れるように制限できます。この記事では、Spire.XLS for Java を使用して Excel でデータの入力規則の適用と削除方法を紹介します。

Spire.XLS for Java をインストールします

まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<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</artifactId>
        <version>12.10.3</version>
    </dependency>
</dependencies>

特定のセル範囲にデータの入力規則を適用する方法

詳細な手順は次のとおりです。

  • Workbook オブジェクトを作成します。
  • Workbook.getWorksheets()get() メソッドを使用して、最初のワークシートを取得します。
  • Worksheet.getCellRange() メソッドを使用して、て特定のセル範囲を取得し、データの入力規則を追加します。
  • CellRange.getDataValidation().setAllowType() メソッドを使用して、セルで許可されるデータ型を設定します。Integer、Time、Date、TextLength、Decimal などのデータ型を選択できます。
  • CellRange.getDataValidation().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 DataValidation {

    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.getCellStyle().setKnownColor(ExcelColors.Gray25Percent);

        // C4に日付の入力規則を追加する
        CellRange rangeDate = sheet.getCellRange("C4");
        rangeDate.getDataValidation().setAllowType(CellDataType.Date);
        rangeDate.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
        rangeDate.getDataValidation().setFormula1("1/1/2010");
        rangeDate.getDataValidation().setFormula2("12/31/2020");
        rangeDate.getDataValidation().setInputMessage("2010年1月1日から2020年12月31日までの日付を入力します");
        rangeDate.getCellStyle().setKnownColor(ExcelColors.Gray25Percent);

        // 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.getCellStyle().setKnownColor(ExcelColors.Gray25Percent);

        // C8にのリストの入力規則を適用する
        CellRange rangeList = sheet.getCellRange("C8");
        rangeList.getDataValidation().setValues(new String[]{ "アメリカ", "カナダ", "イギリス", "ドイツ" });
        rangeList.getDataValidation().isSuppressDropDownArrow(false);
        rangeList.getDataValidation().setInputMessage("リストから項目を選択します");
        rangeList.getCellStyle().setKnownColor(ExcelColors.Gray25Percent);

        // 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.getCellStyle().setKnownColor(ExcelColors.Gray25Percent);

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

        //列3の幅を設定する
        sheet.setColumnWidth(3, 20);

        //ブックをExcelファイルに保存する
        workbook.saveToFile("output/ApplyDataValidation.xlsx", ExcelVersion.Version2016);
    }
}

Java:Excel でデータの入力規則の適用と削除方法

特定のセル範囲にデータの入力規則を削除する方法

詳細な手順は次のとおりです。

  • Workbook オブジェクトを作成します。
  • Workbook.loadFromFile() メソッドを使用して、サンプルドキュメントをロードします。
  • Workbook.getWorksheets()get() メソッドを使用して、最初のワークシートを取得します。
  • 特定のセル範囲を検索するために Rectangle オブジェクトの配列を作成します。
  • Worksheet.getDVTable().remove() メソッドを使用して、選択したセル範囲からデータの入力規則を削除します。
  • Workbook.saveToFile() メソッドを使用して、ブックを他の Excel ファイルに保存します。
  • Java
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("C:\\Users\\Administrator\\Desktop\\ApplyDataValidation.xlsx");

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

        //特定のセル範囲を検索するためにRectangleオブジェクトの配列を作成する     
 Rectangle[] rectangles = new Rectangle[]{

                // Rectangle(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("output/RemoveDataValidation.xlsx");
    }
}

Java:Excel でデータの入力規則の適用と削除方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 951 times