From f6114e3d30fc6fca6edf04905f2cd0f5788cfe1e Mon Sep 17 00:00:00 2001 From: jueyue Date: Thu, 25 Jan 2018 23:18:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E9=AB=98=E5=BA=A6=E5=AE=9A?= =?UTF-8?q?=E5=88=B6,=E5=9C=B0=E5=9D=80=E6=94=AF=E6=8C=81url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easypoi/cache/manager/FileLoaderImpl.java | 50 ++++++++++++------- .../easypoi/excel/entity/ExportParams.java | 12 +++++ .../excel/export/ExcelExportService.java | 14 +++--- .../template/ExcelExportOfTemplateUtil.java | 2 +- 4 files changed, 52 insertions(+), 26 deletions(-) diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/cache/manager/FileLoaderImpl.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/cache/manager/FileLoaderImpl.java index c8a684e..f7edb89 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/cache/manager/FileLoaderImpl.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/cache/manager/FileLoaderImpl.java @@ -1,13 +1,13 @@ /** * Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and @@ -21,6 +21,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; +import java.net.URL; +import java.net.URLConnection; /** * 文件加载类,根据路径加载指定文件 @@ -37,18 +39,30 @@ public class FileLoaderImpl implements IFileLoader { InputStream fileis = null; ByteArrayOutputStream baos = null; try { - //先用绝对路径查询,再查询相对路径 - try { - fileis = new FileInputStream(url); - } catch (FileNotFoundException e) { - //获取项目文件 - fileis = FileLoaderImpl.class.getClassLoader().getResourceAsStream(url); - if (fileis == null) { - //最后再拿相对文件路径 - String path = PoiPublicUtil.getWebRootPath(url); - fileis = new FileInputStream(path); + + //判断是否是网络地址 + if (url.startsWith("http")) { + URL urlObj = new URL(url); + URLConnection urlConnection = urlObj.openConnection(); + urlConnection.setConnectTimeout(30); + urlConnection.setReadTimeout(60); + urlConnection.setDoInput(true); + fileis = urlConnection.getInputStream(); + } else { + //先用绝对路径查询,再查询相对路径 + try { + fileis = new FileInputStream(url); + } catch (FileNotFoundException e) { + //获取项目文件 + fileis = FileLoaderImpl.class.getClassLoader().getResourceAsStream(url); + if (fileis == null) { + //最后再拿相对文件路径 + String path = PoiPublicUtil.getWebRootPath(url); + fileis = new FileInputStream(path); + } } } + baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ExportParams.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ExportParams.java index 9b3acbd..f2e7b6c 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ExportParams.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ExportParams.java @@ -83,6 +83,11 @@ public class ExportParams extends ExcelBaseParams { * Excel 导出style */ private Class style = ExcelExportStylerDefaultImpl.class; + + /** + * 表头高度 + */ + private double headerHeight = 9D; /** * 是否创建表头 */ @@ -272,4 +277,11 @@ public class ExportParams extends ExcelBaseParams { this.height = height; } + public short getHeaderHeight() { + return (short) (titleHeight * 50); + } + + public void setHeaderHeight(double headerHeight) { + this.headerHeight = headerHeight; + } } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/ExcelExportService.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/ExcelExportService.java index bb17591..5bfc1a2 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/ExcelExportService.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/ExcelExportService.java @@ -55,9 +55,9 @@ public class ExcelExportService extends BaseExportService { List excelParams) { int rows = 0, fieldLength = getFieldLength(excelParams); if (entity.getTitle() != null) { - rows += createHeaderRow(entity, sheet, workbook, fieldLength); + rows += createTitle2Row(entity, sheet, workbook, fieldLength); } - rows += createTitleRow(entity, sheet, workbook, rows, excelParams); + rows += createHeaderRow(entity, sheet, workbook, rows, excelParams); sheet.createFreezePane(0, rows, 0, rows); return rows; } @@ -65,7 +65,7 @@ public class ExcelExportService extends BaseExportService { /** * 创建 表头改变 */ - public int createHeaderRow(ExportParams entity, Sheet sheet, Workbook workbook, + public int createTitle2Row(ExportParams entity, Sheet sheet, Workbook workbook, int fieldWidth) { Row row = sheet.createRow(0); @@ -212,15 +212,15 @@ public class ExcelExportService extends BaseExportService { /** * 创建表头 */ - private int createTitleRow(ExportParams title, Sheet sheet, Workbook workbook, int index, - List excelParams) { + private int createHeaderRow(ExportParams title, Sheet sheet, Workbook workbook, int index, + List excelParams) { Row row = sheet.createRow(index); int rows = getRowNums(excelParams); - row.setHeight((short) 450); + row.setHeight(title.getHeaderHeight()); Row listRow = null; if (rows == 2) { listRow = sheet.createRow(index + 1); - listRow.setHeight((short) 450); + listRow.setHeight(title.getHeaderHeight()); } int cellIndex = 0; int groupCellLength = 0; diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java index 8d8df00..dc41ce8 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java @@ -302,7 +302,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService { cell = row.getCell(i); if (row.getCell(i) != null && (cell.getCellType() == Cell.CELL_TYPE_STRING || cell.getCellType() == Cell.CELL_TYPE_NUMERIC)) { - String text = PoiCellUtil.getCellValue(cell); // plq modify at 2017-11-11 + String text = PoiCellUtil.getCellValue(cell); if (text.contains(FOREACH_COL) || text.contains(FOREACH_COL_VALUE)) { foreachCol(cell, map, text); }