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:UsersAdministratorDesktopApplyDataValidation.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 日間有効な一時ライセンスを取得してください。