一马平川1

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

poi依赖:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>

 

 

 

 

添加背景色:

依次创建工作表--工作簿--行--单元格
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("sheet1");
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(i);
创建样式对象,并设置背景(注意是foreground,不是background,两者是相反的)黄色,且是实心
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
设置样式
cell.setCellStyle(cellStyle);

添加批注:

依次创建工作表--工作簿--行--单元格
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("sheet1");
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(i);
依次创建画布--锚点--批注--设置批注内容
XSSFDrawing drawingPatriarch = sheet.createDrawingPatriarch(); //画布(注意批注是一种图形,所以要用画布)
XSSFClientAnchor xSSFClientAnchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 0, 4, 4); //锚点,确定批注的位置(8个参数中:后4个是根据单元格定位,前4个是根据后4个定好的位置再按像素微调)
XSSFComment cellComment = drawingPatriarch.createCellComment(xSSFClientAnchor); // 在锚点位置创建批注
cellComment.setString("批注内容"); // 设置批注内容
设置样式
cell.setCellStyle(cellStyle);
特别注意: 每个批注都是一个独立的画布,所以如果多个单元格都需要批注时,要为每一个批注都创建一套"画布,锚点,批注".

添加下拉值:

DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
// 构造带下拉列表约束的下拉框
DataValidationConstraint constraint = dataValidationHelper.createExplicitListConstraint(new String[]{"A","B","C","D"}); // 下拉值:A,B,C,D
// 划定需要下拉的区域
CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(0, 1000, 0, 0); // 0-1000行,0-0列
// 绑定下拉框和区域,构造数据验证对象
DataValidation validation = dataValidationHelper.createValidation(constraint, cellRangeAddressList);
// 为sheet添加此验证对象
sheet.addValidationData(validation);

总结:

1. 使用POI可以在Java代码中操作Excel任意功能,同理在WORD,PPT中也可用

2. 批注需要一个独立的画布,所以对于每个批注都要创建一个画布

posted on 2020-09-13 11:14  一马平川1  阅读(1350)  评论(0编辑  收藏  举报