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);
}
}
jackmao的导出带背景颜色,不可修改
最新推荐文章于 2024-05-31 10:46:10 发布