jackmao的导出带背景颜色,不可修改

package lambdasinaction.chap1;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import lambdasinaction.chap1.DataModel;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ExcelExport {
public static void main(String[] args) {
// 创建一个新的工作簿
Workbook workbook = new XSSFWorkbook();
// 创建一个工作表sheet
Sheet sheet = workbook.createSheet("Demo");

// 创建一个单元格样式并设置为锁定
CellStyle lockedCellStyle = workbook.createCellStyle();
lockedCellStyle.setLocked(true);

// 创建一个单元格样式并设置为未锁定
CellStyle unlockedCellStyle = workbook.createCellStyle();
unlockedCellStyle.setLocked(false);

// 创建行和单元格,并应用样式
Row row = sheet.createRow(0); // 创建第一行
Cell cell;

// 设置前5个单元格为不可编辑
for (int i = 0; i < 5; i++) {
cell = row.createCell(i);
cell.setCellValue("Cell " + (i + 1));
cell.setCellStyle(lockedCellStyle);
}

// 设置第6个单元格为可编辑
cell = row.createCell(5);
cell.setCellValue("Editable Cell");
cell.setCellStyle(unlockedCellStyle);

// 设置工作表保护密码
sheet.protectSheet("password");

// 写入到文件
try (FileOutputStream outputStream = new FileOutputStream("F:\\Demo.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main1(String[] args) {
// 创建头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景设置为红色
headWriteCellStyle.setFillForegroundColor(IndexedColors.RED.getIndex());

// 内容的策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
// 背景设为绿色
contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());

// 头和内容策略
HorizontalCellStyleStrategy horizontalCellStyleStrategy =
new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
// 文件名
String fileName = "F:\\12example.xlsx";
// 创建动态表头
List<List<String>> head = new ArrayList<>();
head.add(new ArrayList<String>() {{
add("基本信息");
add("姓名");
}});
head.add(new ArrayList<String>() {{
add("基本信息");
add("年龄");
}});
head.add(new ArrayList<String>() {{
add("联系方式");
add("电话");
}});
head.add(new ArrayList<String>() {{
add("联系方式");
add("邮箱");
}});
DataModel dataModel1= new DataModel();
dataModel1.setAge(12);
dataModel1.setName("12");
dataModel1.setTel(123);
dataModel1.setEmail("123");
DataModel dataModel11= new DataModel();
dataModel11.setAge(12);
dataModel11.setName("12");
dataModel11.setTel(123);
dataModel11.setEmail("123");
List<DataModel>dataModels= Arrays.asList(dataModel11,dataModel1);
// 写入Excel
EasyExcel.write(fileName, DataModel.class)
.registerWriteHandler(horizontalCellStyleStrategy)
.sheet("Sheet1")
.doWrite(dataModels);
}
}

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值