gpt4 book ai didi

java - 使用 apache-poi java 验证不适用于 xlsx 文件

转载 作者:行者123 更新时间:2023-12-02 13:04:47 26 4
gpt4 key购买 nike

嗨,我正在使用 java 中的 apache-poi 创建一个“.xlsx”文件。所以我做了一些验证并生成文件。现在,如果我手动检查文件的数据验证部分中的验证,则在生成的文件中启用这些验证。

但是当我将非法值放入这些列中时,它不会显示任何警报消息,例如“不允许使用此值”,然后继续让用户放置非法值。

public static void main(String[] args) throws Exception 
{
XSSFWorkbook workbook = new XSSFWorkbook();
//HSSFWorkbook workbook = new HSSFWorkbook();

XSSFSheet spreadsheet = workbook.createSheet("Order Details");
//HSSFSheet spreadsheet = workbook.createSheet("Order Details");
// Create row object
XSSFRow row;
//HSSFRow row;

CellStyle unlockedCellStyle = workbook.createCellStyle();
unlockedCellStyle.setLocked(false);

int rowid = 0;

row = spreadsheet.createRow(rowid++);
int cellid = 0;

for (String st : XLS_HEADER.split(",")) {
Cell cell = row.createCell(cellid++);
cell.setCellValue(st);

}
CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0);

DataValidationHelper dataValidationHelper = spreadsheet.getDataValidationHelper();
DataValidationConstraint constraint = dataValidationHelper.createDateConstraint(OperatorType.BETWEEN,
"25/10/2014", "30/10/2014", "dd/MM/yyyy");
DataValidation validation = dataValidationHelper.createValidation(constraint, addressList);
spreadsheet.addValidationData(validation);

FileOutputStream fileOut = new FileOutputStream("testing-file.xlsx");
workbook.write(fileOut);
fileOut.close();
System.out.println("Your excel file has been generated!");
}

如果我对 HSSFWorkbook 执行相同的操作来创建“.xls”文件,它似乎工作正常。它显示弹出警报,并且不允许用户在字段中输入无效值。

请在这里帮助我。

最佳答案

得到答案了。结果是,对于每个验证,您都必须在 XSSF 中显式设置警报框。对于我的代码示例,它将如下:

validation.setShowErrorBox(true);

接下来的验证

DataValidationHelper dataValidationHelper = spreadsheet.getDataValidationHelper();
DataValidationConstraint constraint = dataValidationHelper.createDateConstraint(OperatorType.BETWEEN,
"25/10/2014", "30/10/2014", "dd/MM/yyyy");
DataValidation validation = dataValidationHelper.createValidation(constraint, addressList);
spreadsheet.addValidationData(validation);

添加以下内容

validation.setShowErrorBox(true);

在将此验证添加到电子表格之前。

这已在 HSSFWorkbook 中启用。

关于java - 使用 apache-poi java 验证不适用于 xlsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com