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);
}
}
特定のセル範囲にデータの入力規則を削除する方法
詳細な手順は次のとおりです。
- 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");
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。