Tôi đang cố gắng để làm cho một số tế bào excel bắt buộc để một tin nhắn có thể được hiển thị, nếu chúng được để trống bởi người dùng.Làm thế nào để làm cho các tế bào excel bắt buộc?
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");
Tôi đã sử dụng validation.setEmptyCellAllowed(false);
và dự kiến rằng nó sẽ ngăn không cho các ô bị làm trống nhưng không hoạt động. Tuy nhiên, các ô mà trên đó ràng buộc này được thực thi, được xác nhận cho độ dài từ 2 đến 45 ký tự.
Tại sao validation.setEmptyCellAllowed(false);
không hoạt động trong trường hợp này? Làm thế nào để làm cho một tế bào bắt buộc để nó không thể để trống?
Khi sử dụng phương pháp validation.setEmptyCellAllowed(false);
, có vẻ như ràng buộc xác thực được áp dụng chính xác trong Excel.
Hộp kiểm Ignore trống được đánh dấu. Excel vẫn cho phép các ô mà ràng buộc này được thực thi để được để trống.
Mục đích của Bỏ qua trống trong Excel có thể khác mà tôi không hiểu. Dù sao tôi cần phải làm cho một số tế bào bắt buộc. Nếu một nỗ lực được thực hiện để làm rỗng chúng sau đó, nó sẽ bị từ chối và một thông báo lỗi thích hợp sẽ được hiển thị. Nó có thể yêu cầu một số thủ thuật/mã Visual Basic được nhúng trong Excel.
Tôi biết không có giải pháp cho vấn đề của bạn có thể được thực hiện chỉ với chức năng Excel gốc. Tuy nhiên, VBA (không phải VB) được cài đặt bất cứ khi nào Excel được cài đặt. Việc chạy Macros có thể bị hạn chế bởi các chính sách bảo mật. Hãy thử điều này: Với Excel mở, nhấp chuột phải vào tab trang tính và chọn Xem mã. Nếu một cửa sổ mã mở ra, thì VBA được cài đặt. –
@Tiny Gắn cờ nhận xét của tôi –
Có cửa sổ mã đã được mở. – Tiny