Commit 5ad593aa authored by yanzg's avatar yanzg

EXCEL自定义列处理

parent b6b4e06d
...@@ -9,6 +9,7 @@ import com.yanzuoguang.util.helper.StringHelper; ...@@ -9,6 +9,7 @@ import com.yanzuoguang.util.helper.StringHelper;
import com.yanzuoguang.util.table.TableHead; import com.yanzuoguang.util.table.TableHead;
import com.yanzuoguang.util.table.TableHeadHelper; import com.yanzuoguang.util.table.TableHeadHelper;
import com.yanzuoguang.util.table.TableHeadItem; import com.yanzuoguang.util.table.TableHeadItem;
import com.yanzuoguang.util.thread.ThreadHelper;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
...@@ -161,18 +162,9 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -161,18 +162,9 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
* 检测参数是否异常 * 检测参数是否异常
*/ */
public ExcelConsole<T> check() { public ExcelConsole<T> check() {
CheckerHelper check = CheckerHelper.newInstance() CheckerHelper check = CheckerHelper.newInstance().notBlankCheck("导出xls配置", this.config).notBlankCheck("导出xls.标题", this.config.getTitle()).notBlankCheck("导出xls.子标题", this.config.getSubTitle()).notBlankCheck("导出xls.服务器路径", this.config.getServerPath()).notBlankCheck("导出xls.文件名", this.config.getFileName()).notBlankListCheck("导出xls.列", this.config.getColumns()).checkException();
.notBlankCheck("导出xls配置", this.config)
.notBlankCheck("导出xls.标题", this.config.getTitle())
.notBlankCheck("导出xls.子标题", this.config.getSubTitle())
.notBlankCheck("导出xls.服务器路径", this.config.getServerPath())
.notBlankCheck("导出xls.文件名", this.config.getFileName())
.notBlankListCheck("导出xls.列", this.config.getColumns())
.checkException();
for (ExportColumn column : this.config.getColumns()) { for (ExportColumn column : this.config.getColumns()) {
check.notBlankCheck("导出xls.列名", column.getName()) check.notBlankCheck("导出xls.列名", column.getName()).notBlankCheck("导出xls.标题", column.getTitle()).checkException();
.notBlankCheck("导出xls.标题", column.getTitle())
.checkException();
} }
return this; return this;
...@@ -298,8 +290,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -298,8 +290,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
cell.cellStyle = createCellStyle(cell); cell.cellStyle = createCellStyle(cell);
Object value = cell.getValue(); Object value = cell.getValue();
if (value != null) { if (value != null) {
cell.cell = createCell(sheetRow, cell.getColumn(), StringHelper.isNumber(value), cell.cell = createCell(sheetRow, cell.getColumn(), StringHelper.isNumber(value), StringHelper.toString(value), cell.cellStyle);
StringHelper.toString(value), cell.cellStyle);
} }
// 合并单元格 // 合并单元格
if (cell.getWidthSize() > 1 || cell.getHeightSize() > 1) { if (cell.getWidthSize() > 1 || cell.getHeightSize() > 1) {
...@@ -321,10 +312,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -321,10 +312,7 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
Map<String, Object> map = new HashMap<>(this.config.getColumns().size() * 2 + 3); Map<String, Object> map = new HashMap<>(this.config.getColumns().size() * 2 + 3);
// 设置列别名 // 设置列别名
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(column.columnIndex, this.startDataRowIndex), CellReferenceUtil.getCoordName(column.columnIndex, this.endDataRowIndex)));
CellReferenceUtil.getCoordName(column.columnIndex, this.startDataRowIndex),
CellReferenceUtil.getCoordName(column.columnIndex, this.endDataRowIndex)
));
map.put(column.getName() + "_COL", CellReferenceUtil.getColName(column.columnIndex)); map.put(column.getName() + "_COL", CellReferenceUtil.getColName(column.columnIndex));
} }
// 数据行开始行号 // 数据行开始行号
...@@ -514,10 +502,16 @@ public class ExcelConsole<T extends Object> implements DbRow<T> { ...@@ -514,10 +502,16 @@ public class ExcelConsole<T extends Object> implements DbRow<T> {
} }
// 重命名成正式文件 // 重命名成正式文件
String fileName = this.getFileName(); String fileName = this.getFileName();
boolean b = file.renameTo(new File(fileName)); File toFile = new File(fileName);
boolean b = file.renameTo(toFile);
if (!b) { if (!b) {
throw YzgError.getRuntimeException("036", fileName); throw YzgError.getRuntimeException("036", fileName);
} }
long maxTime = System.currentTimeMillis() + 30 * 1000;
// 等待文件重命名成功
while (!toFile.exists() && System.currentTimeMillis() <= maxTime) {
ThreadHelper.sleep(100);
}
return this; return this;
} }
......
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