Commit cfd43d84 authored by yanzg's avatar yanzg

EXCEL自定义列处理

parent 6c1f982f
...@@ -187,6 +187,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -187,6 +187,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
String[] columns = new String[this.config.getColumns().size()]; String[] columns = new String[this.config.getColumns().size()];
int pos = 0; int pos = 0;
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
column.column = pos;
columns[pos++] = column.getTitle(); columns[pos++] = column.getTitle();
} }
return TableHeadHelper.getTableHead(columns); return TableHeadHelper.getTableHead(columns);
...@@ -278,13 +279,10 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -278,13 +279,10 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
} }
} }
// 设置列宽度 // 设置列宽度
int columnPos = 0;
// 合并数据配置 // 合并数据配置
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
sheet.setColumnWidth(columnPos, getUnit(column.getWidth())); sheet.setColumnWidth(column.column, getUnit(column.getWidth()));
columnPos++;
// 列样式 // 列样式
column.cellStyle = createColumnStyle(this.workbook, column); column.cellStyle = createColumnStyle(this.workbook, column);
} }
...@@ -318,13 +316,12 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -318,13 +316,12 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
private void writeDefineFormula(List<ExcelDefineRow> rows) { private void writeDefineFormula(List<ExcelDefineRow> rows) {
Map<String, Object> map = new HashMap<>(this.config.getColumns().size() * 2 + 3); Map<String, Object> map = new HashMap<>(this.config.getColumns().size() * 2 + 3);
// 设置列别名 // 设置列别名
int columnPos = 0;
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
map.put(column.getName(), String.format("%s:%s", map.put(column.getName(), String.format("%s:%s",
CellReferenceUtil.getCoordName(columnPos, this.startDataRowIndex), CellReferenceUtil.getCoordName(column.column, this.startDataRowIndex),
CellReferenceUtil.getCoordName(columnPos, this.endDataRowIndex) CellReferenceUtil.getCoordName(column.column, this.endDataRowIndex)
)); ));
map.put(column.getName() + "_COL", CellReferenceUtil.getColName(columnPos)); map.put(column.getName() + "_COL", CellReferenceUtil.getColName(column.column));
} }
// 数据行开始行号 // 数据行开始行号
map.put("startDataRowIndex", CellReferenceUtil.getRowName(this.startDataRowIndex)); map.put("startDataRowIndex", CellReferenceUtil.getRowName(this.startDataRowIndex));
...@@ -383,7 +380,6 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -383,7 +380,6 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
// 将当前組生成值密钥 // 将当前組生成值密钥
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
// 写入本行内容 // 写入本行内容
int columnPos = 0;
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
String columnName = column.getName(); String columnName = column.getName();
String value = StringHelper.getFirst(rowHandle.get(t, columnName)); String value = StringHelper.getFirst(rowHandle.get(t, columnName));
...@@ -404,10 +400,9 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -404,10 +400,9 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
// 当前行行高 // 当前行行高
height = Math.max(nowCellHeight, height); height = Math.max(nowCellHeight, height);
// 当不需要合并历史记录时,则创建新的内容 // 当不需要合并历史记录时,则创建新的内容
createCell(row, columnPos, value, column.cellStyle); createCell(row, column.column, value, column.cellStyle);
// 合并列 // 合并列
mergerColumn(column, columnPos, false); mergerColumn(column, column.column, false);
columnPos++;
} }
row.setHeight((short) Math.min(height, Short.MAX_VALUE)); row.setHeight((short) Math.min(height, Short.MAX_VALUE));
...@@ -488,10 +483,8 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -488,10 +483,8 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
// 合并数据配置 // 合并数据配置
if (this.rowData > 0) { if (this.rowData > 0) {
int columnPos = 0;
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
mergerColumn(column, columnPos, true); mergerColumn(column, column.column, true);
columnPos++;
} }
} }
......
...@@ -44,9 +44,17 @@ public class ExportColumn { ...@@ -44,9 +44,17 @@ public class ExportColumn {
*/ */
@ApiModelProperty(notes = "上下对其:0-居中,1-上对其,2-下对齐") @ApiModelProperty(notes = "上下对其:0-居中,1-上对其,2-下对齐")
private int verticalAlignment; private int verticalAlignment;
/**
* 列序号
*/
int column;
/**
* 合计列数据
*/
ExcelMergerData groupData = new ExcelMergerData(); ExcelMergerData groupData = new ExcelMergerData();
/**
* 列样式
*/
CellStyle cellStyle; CellStyle cellStyle;
public ExportColumn() { public ExportColumn() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment