Próbuję ustawić niektóre komórki programu Excel jako obowiązkowe, aby można było wyświetlić komunikat, jeśli użytkownik nie zaznaczy tego pola.Jak ustawić celowniki Excel jako obowiązkowe?
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data Validation");
DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
DataValidationConstraint lengthConstraint = dataValidationHelper.createTextLengthConstraint(
DataValidationConstraint.OperatorType.BETWEEN, "2", "45");
CellRangeAddressList cellList = new CellRangeAddressList(0, 0, 1, 1);
DataValidation validation = dataValidationHelper.createValidation(lengthConstraint, cellList);
validation.setErrorStyle(ErrorStyle.STOP);
validation.createErrorBox("Error", "The length must be between 2 and 45.");
validation.setEmptyCellAllowed(false);
if (validation instanceof XSSFDataValidation) {
validation.setSuppressDropDownArrow(false);
validation.setShowErrorBox(true);
} else {
validation.setSuppressDropDownArrow(true);
}
sheet.addValidationData(validation);
Row row = sheet.createRow(0);
Cell cell = row.createCell(1);
cell.setCellValue("Text");
użyłem validation.setEmptyCellAllowed(false);
i oczekuje się, że powinno to zapobiec komórki przed opróżniane ale to nie działa. Komórka, w której wymuszone jest to ograniczenie, jest jednak sprawdzana pod kątem długości od 2 do 45 znaków.
Dlaczego validation.setEmptyCellAllowed(false);
nie działa w tym przypadku? Jak ustawić komórkę jako obowiązkową, aby nie można było pozostawić pustą?
Kiedy stosowana jest metoda validation.setEmptyCellAllowed(false);
, wydaje się ograniczenie walidacja jest prawidłowo stosowane w programie Excel.
Pole wyboru Ignoruj pustejest zaznaczona. Program Excel nadal zezwala na pozostawienie pustego pola w komórkach, w których wymuszone jest to ograniczenie.
Celem Ignoruj puste w programie Excel może być inny, że nie rozumiem. W każdym razie muszę ustawić pewne komórki jako obowiązkowe. Jeśli zostanie podjęta próba ich opróżnienia, należy je odrzucić i wyświetlić odpowiedni komunikat o błędzie. Może wymagać pewnych sztuczek/kodu Visual Basic do osadzenia w Excelu.
Nie znam żadnego rozwiązania problemu, który można osiągnąć za pomocą natywnej funkcjonalności programu Excel. Jednak VBA (nie VB) instaluje się zawsze, gdy jest zainstalowany program Excel. Uruchomienie makr może być ograniczone przez zasady bezpieczeństwa. Spróbuj: Otwórz program Excel, kliknij prawym przyciskiem myszy kartę arkusza i wybierz opcję Wyświetl kod. Jeśli otworzy się okno kodu, instalowany jest VBA. –
@Tiny Oznaczanie mojego komentarza –
Tak, okno kodu zostało otwarte. – Tiny