使用阿里的 easyexcel 实现如下图所示的excel导出:
第一行是主标题。
数据列表从第2行开始。
1.pom.xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel-core</artifactId>
<version>3.3.2</version>
</dependency>
2. 导出拦截器
用于展示主标题及其样式。
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
/**
* 实施进度报表 拦截器
* <p> 参考:https://www.cnblogs.com/better-farther-world2099/articles/16106085.html </p>
* @author
* @date 2024/9/19 星期四
* @since JDK 17
*/
public class ImplProgressReportSheetWriteHandler implements SheetWriteHandler {
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet sheet = workbook.getSheetAt(0);
// 设置第一行标题
Row row1 = sheet.createRow(0);
row1.setHeight((short) 300);
Cell row1Cell1 = row1.createCell(0);
row1Cell1.setCellValue("xxxx报表");
CellStyle row1CellStyle = workbook.createCellStyle();
row1CellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
row1CellStyle.setAlignment(HorizontalAlignment.CENTER);
Font row1Font = workbook.createFont();
row1Font.setBold(true);
row1Font.setFontName("方正小标宋_GBK");
row1Font.setFontHeightInPoints((short) 20);
row1CellStyle.setFont(row1Font);
row1Cell1.setCellStyle(row1CellStyle);
//合并单元格,起始行,结束行,起始列,结束列
sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 1, 0, 17));
}
}
3.controller
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Slf4j
@Api(tags = "工程标段填报统计 API接口")
@RestController
@RequestMapping(value = "/migrate/prjbid/fill")
public class MigrateBidFillStatController {
@ApiOperation(value = "导出实施进度报表")
@PostMapping("/export/implProgressReport")
public void implProgressReportExport(HttpServletResponse response, @RequestBody ImplProgressReportRequest request) {
/* 参考:https://blog.csdn.net/qq_43932985/article/details/141644977 */
log.info("导出实施进度报表-开始.请求参数:{}", JSON.toJSONString(request));
ServletOutputStream os = null;
try {
this.setExcelResponseProp(response, "实施进度报表");
ImplProgressReportExportVo vo1 = new ImplProgressReportExportVo();
vo1.setNumber("一");
vo1.setFundName("土地");
vo1.setUnit("亩");
vo1.setTotalPlan(new BigDecimal("31751.62"));
vo1.setImplCurMonthComplete(new BigDecimal("391.46"));
vo1.setImplTotalComplete(new BigDecimal("3185.2"));
//vo1.setHbCurMonthComplete(BigDecimal.ZERO);
//vo1.setHbTotalComplete(BigDecimal.ZERO);
vo1.setNanNingCurMonthComplete(new BigDecimal("167.7"));
vo1.setNanNingTotalComplete(new BigDecimal("620.31"));
vo1.setBeiHaiCurMonthComplete(new BigDecimal("45.22"));
vo1.setBeiHaiTotalComplete(new BigDecimal("437.43"));
vo1.setFcgCurMonthComplete(new BigDecimal("7.53"));
vo1.setFcgTotalComplete(new BigDecimal("101.98"));
vo1.setQinZhouCurMonthComplete(new BigDecimal("171.01"));
vo1.setQinZhouTotalComplete(new BigDecimal("1581.62"));
//vo1.setYuLinCurMonthComplete(BigDecimal.ZERO);
vo1.setYuLinTotalComplete(new BigDecimal("443.86"));
ImplProgressReportExportVo vo2 = new ImplProgressReportExportVo();
vo2.setNumber("1");
vo2.setFundName("永久用地");
vo2.setUnit("亩");
vo2.setTotalPlan(new BigDecimal("2605.88"));
// vo2.setImplCurMonthComplete(BigDecimal.ZERO);
// vo2.setImplTotalComplete(BigDecimal.ZERO);
// vo2.setHbCurMonthComplete(BigDecimal.ZERO);
// vo2.setHbTotalComplete(BigDecimal.ZERO);
// vo2.setNanNingCurMonthComplete(BigDecimal.ZERO);
// vo2.setNanNingTotalComplete(BigDecimal.ZERO);
// vo2.setBeiHaiCurMonthComplete(BigDecimal.ZERO);
// vo2.setBeiHaiTotalComplete(BigDecimal.ZERO);
// vo2.setFcgCurMonthComplete(BigDecimal.ZERO);
// vo2.setFcgTotalComplete(BigDecimal.ZERO);
// vo2.setQinZhouCurMonthComplete(BigDecimal.ZERO);
// vo2.setQinZhouTotalComplete(BigDecimal.ZERO);
// vo2.setYuLinCurMonthComplete(BigDecimal.ZERO);
// vo2.setYuLinTotalComplete(BigDecimal.ZERO);
ImplProgressReportExportVo vo3 = new ImplProgressReportExportVo();
vo3.setNumber("2");
vo3.setFundName("临时用地");
vo3.setUnit("亩");
vo3.setTotalPlan(new BigDecimal("29145.74"));
vo3.setImplCurMonthComplete(new BigDecimal("391.46"));
vo3.setImplTotalComplete(new BigDecimal("3185.2"));
//vo3.setHbCurMonthComplete(BigDecimal.ZERO);
//vo3.setHbTotalComplete(BigDecimal.ZERO);
vo3.setNanNingCurMonthComplete(new BigDecimal("167.7"));
vo3.setNanNingTotalComplete(new BigDecimal("620.31"));
vo3.setBeiHaiCurMonthComplete(new BigDecimal("45.22"));
vo3.setBeiHaiTotalComplete(new BigDecimal("437.43"));
vo3.setFcgCurMonthComplete(new BigDecimal("7.53"));
vo3.setFcgTotalComplete(new BigDecimal("101.98"));
vo3.setQinZhouCurMonthComplete(new BigDecimal("171.01"));
vo3.setQinZhouTotalComplete(new BigDecimal("1581.62"));
//vo3.setYuLinCurMonthComplete(BigDecimal.ZERO);
vo3.setYuLinTotalComplete(new BigDecimal("443.86"));
os = response.getOutputStream();
EasyExcel.write(os).head(ImplProgressReportExportVo.class).excelType(ExcelTypeEnum.XLSX)
// 设置拦截器或自定义样式,第1行是主标题
.registerWriteHandler(new ImplProgressReportSheetWriteHandler())
.sheet("实施进度报表")
//设置默认样式及写入头信息开始的行数
.useDefaultStyle(true).relativeHeadRowIndex(2) // 数据列表从第2行开始
.doWrite(new ArrayList<>(Arrays.asList(vo1, vo2, vo3)));
} catch (Exception e) {
log.error(String.format("导出实施进度报表-失败.请求参数:%s", JSON.toJSONString(request)), e);
} finally {
IOUtils.closeQuietly(os);
}
}
/**
* 设置响应结果
*
* @param response 响应结果对象
* @param rawFileName 文件名
* @throws UnsupportedEncodingException 不支持编码异常
*/
private void setExcelResponseProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
}
}
4. vo类
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentFontStyle;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
/**
* 导出实施进度报表
*
* @author
* @date 2024/9/14 星期六
* @since JDK 17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
public class ImplProgressReportExportVo {
/** 序号 */
// 这一列 每隔2行 合并单元格
// @ContentLoopMerge(eachRow = 2)
@ExcelProperty(value = "序号", index = 0)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(10)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 1)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 1, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private String number;
@ExcelProperty(value = "项目", index = 1)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(20)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 1)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 1, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private String fundName;
/** 单位 */
@ExcelProperty(value = "单位", index = 2)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(10)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 1)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 1, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private String unit;
/** 初步设计指标/投资(设计单位填报) */
@ExcelProperty(value = "初步设计指标", index = 3)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 42)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 42, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal totalPlan;
/** 实施合计(当月完成指标) */
@ExcelProperty(value = { "实施合计", "当月完成指标" }, index = 4)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 1)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 1, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal implCurMonthComplete;
/** 实施合计(累计完成指标) */
@ExcelProperty(value = { "实施合计", "累计完成指标" }, index = 5)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 1)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 1, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal implTotalComplete;
/** 环北公司(当月完成指标) */
@ExcelProperty(value = { "环北公司", "当月完成指标" }, index = 6)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 47, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal hbCurMonthComplete;
/** 环北公司(累计完成指标) */
@ExcelProperty(value = { "环北公司", "累计完成指标" }, index = 7)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 47)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 47, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal hbTotalComplete;
/** 南宁市(当月完成指标) */
@ExcelProperty(value = { "南宁市", "当月完成指标" }, index = 8)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal nanNingCurMonthComplete;
/** 南宁市(累计完成指标) */
@ExcelProperty(value = { "南宁市", "累计完成指标" }, index = 9)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal nanNingTotalComplete;
/** 北海市(当月完成指标) */
@ExcelProperty(value = { "北海市", "当月完成指标" }, index = 10)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal beiHaiCurMonthComplete;
/** 北海市(累计完成指标) */
@ExcelProperty(value = { "北海市", "累计完成指标" }, index = 11)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal beiHaiTotalComplete;
/** 防城港市(当月完成指标) */
@ExcelProperty(value = { "防城港市", "当月完成指标" }, index = 12)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal fcgCurMonthComplete;
/** 防城港市(累计完成指标) */
@ExcelProperty(value = { "防城港市", "累计完成指标" }, index = 13)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal fcgTotalComplete;
/** 钦州市(当月完成指标) */
@ExcelProperty(value = { "钦州市", "当月完成指标" }, index = 14)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal qinZhouCurMonthComplete;
/** 钦州市(累计完成指标) */
@ExcelProperty(value = { "钦州市", "累计完成指标" }, index = 15)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal qinZhouTotalComplete;
/** 玉林市(当月完成指标) */
@ExcelProperty(value = { "玉林市", "当月完成指标" }, index = 16)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal yuLinCurMonthComplete;
/** 玉林市(累计完成指标) */
@ExcelProperty(value = { "玉林市", "累计完成指标" }, index = 17)
@HeadFontStyle(fontHeightInPoints = 10) // 字体大小
@ColumnWidth(12)
// HorizontalAlignmentEnum.CENTER 居中
// FillPatternTypeEnum.SOLID_FOREGROUND : 充满
// fillForegroundColor 见 https://www.cnblogs.com/hezemin/p/17272591.html
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 31)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND,
fillForegroundColor = 31, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN)
@ContentFontStyle(fontHeightInPoints = 10) // 字体大小
private BigDecimal yuLinTotalComplete;
}
5. postman 测试