java导出excel(锁定指定列,下拉框)

本文介绍了如何使用Java进行Excel文件的导出操作,并重点讲解了如何锁定工作表中的特定列,以及设置下拉列表选项,以实现数据验证和增强用户体验。内容包括使用Java POI库进行Excel操作的关键代码示例和步骤解析。
摘要由CSDN通过智能技术生成
@Slf4j
public class ExportExcelTemplate {

    public static <T> Workbook dealInStockTemplate(String[] headerRow, List<T> inStockDtos, List<ExcelDropDownDto> dropDownDtos) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        Workbook workbook = new HSSFWorkbook();

        //单元格样式 - 锁定
        CellStyle alterableStyle = workbook.createCellStyle();
        alterableStyle.setLocked(true);
        //单元格样式 - 非锁定
        CellStyle nolockedStyle = workbook.createCellStyle();
        nolockedStyle.setLocked(false);
        //单元格样式 - 其他自定义样式
        DataFormat dataFormat = workbook.createDataFormat();
        CellStyle cellStyle = workbook.createCellStyle();

        Sheet sheet = workbook.createSheet("药材模板");
        sheet.protectSheet("");
        //下拉框
        for(ExcelDropDownDto dropDownDto : dropDownDtos){
            addValidate2Cell(sheet, dropDownDto.getFirstRow(), dropDownDto.getLastRow(), dropDownDto.getFirstCol(), dropDownDto.getLastCol(), dropDownDto.getValues());
        }

        //处理表头
        Row row = sheet.createRow(0);
        Cell cell = null;
        for(int i = 0; i < headerRow.length; i++){
            cell = row.createCell(i);
            cell.setCellValue(headerRow[i]);
            cell.setCellStyle(alterableStyle);
        }

        //处理表数据
        T inStockDto = null;
        Field[] fields = null;
        Field field = null;
        for(int i = 1; i <= inStockDtos.size(); i++){
            row = sheet.createRow(i);

            inStockDto = inStockDtos.get(i-1);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值