mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix code
This commit is contained in:
parent
6260734304
commit
99994a4d92
@ -12,8 +12,12 @@
|
|||||||
|
|
||||||
package org.dromara.hutool.poi.excel;
|
package org.dromara.hutool.poi.excel;
|
||||||
|
|
||||||
|
import org.dromara.hutool.core.data.id.IdUtil;
|
||||||
import org.dromara.hutool.core.io.IoUtil;
|
import org.dromara.hutool.core.io.IoUtil;
|
||||||
import org.dromara.hutool.core.lang.Assert;
|
import org.dromara.hutool.core.lang.Assert;
|
||||||
|
import org.dromara.hutool.core.net.url.URLEncoder;
|
||||||
|
import org.dromara.hutool.core.text.StrUtil;
|
||||||
|
import org.dromara.hutool.core.util.CharsetUtil;
|
||||||
import org.dromara.hutool.poi.excel.cell.CellLocation;
|
import org.dromara.hutool.poi.excel.cell.CellLocation;
|
||||||
import org.dromara.hutool.poi.excel.cell.CellUtil;
|
import org.dromara.hutool.poi.excel.cell.CellUtil;
|
||||||
import org.dromara.hutool.poi.excel.style.StyleUtil;
|
import org.dromara.hutool.poi.excel.style.StyleUtil;
|
||||||
@ -30,6 +34,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -511,6 +516,45 @@ public class ExcelBase<T extends ExcelBase<T>> implements Closeable {
|
|||||||
return this.sheet instanceof XSSFSheet || this.sheet instanceof SXSSFSheet;
|
return this.sheet instanceof XSSFSheet || this.sheet instanceof SXSSFSheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取Content-Type头对应的值,可以通过调用以下方法快速设置下载Excel的头信息:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* response.setContentType(excelWriter.getContentType());
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @return Content-Type值
|
||||||
|
* @since 5.6.7
|
||||||
|
*/
|
||||||
|
public String getContentType() {
|
||||||
|
return isXlsx() ? ExcelUtil.XLSX_CONTENT_TYPE : ExcelUtil.XLS_CONTENT_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取Content-Disposition头对应的值,可以通过调用以下方法快速设置下载Excel的头信息:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* response.setHeader("Content-Disposition", excelWriter.getDisposition("test.xlsx", CharsetUtil.CHARSET_UTF_8));
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param fileName 文件名,如果文件名没有扩展名,会自动按照生成Excel类型补齐扩展名,如果提供空,使用随机UUID
|
||||||
|
* @param charset 编码,null则使用默认UTF-8编码
|
||||||
|
* @return Content-Disposition值
|
||||||
|
*/
|
||||||
|
public String getDisposition(String fileName, Charset charset) {
|
||||||
|
if (null == charset) {
|
||||||
|
charset = CharsetUtil.UTF_8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isBlank(fileName)) {
|
||||||
|
// 未提供文件名使用随机UUID作为文件名
|
||||||
|
fileName = IdUtil.fastSimpleUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
fileName = StrUtil.addSuffixIfNot(URLEncoder.encodeAll(fileName, charset), isXlsx() ? ".xlsx" : ".xls");
|
||||||
|
return StrUtil.format("attachment; filename=\"{}\"", fileName);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关闭工作簿<br>
|
* 关闭工作簿<br>
|
||||||
* 如果用户设定了目标文件,先写出目标文件后给关闭工作簿
|
* 如果用户设定了目标文件,先写出目标文件后给关闭工作簿
|
||||||
|
@ -462,7 +462,7 @@ public class ExcelUtil {
|
|||||||
* @return 0-》A; 1-》B...26-》AA
|
* @return 0-》A; 1-》B...26-》AA
|
||||||
* @since 4.1.20
|
* @since 4.1.20
|
||||||
*/
|
*/
|
||||||
public static String indexToColName(int index) {
|
public static String indexToColName(final int index) {
|
||||||
return CellLocationUtil.indexToColName(index);
|
return CellLocationUtil.indexToColName(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +100,7 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
|||||||
*/
|
*/
|
||||||
private final AtomicInteger currentRow;
|
private final AtomicInteger currentRow;
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- Constructor start
|
// region Constructors
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造,默认生成xls格式的Excel文件<br>
|
* 构造,默认生成xls格式的Excel文件<br>
|
||||||
* 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流<br>
|
* 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流<br>
|
||||||
@ -202,8 +201,7 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
|||||||
this.styleSet = new StyleSet(workbook);
|
this.styleSet = new StyleSet(workbook);
|
||||||
this.currentRow = new AtomicInteger(0);
|
this.currentRow = new AtomicInteger(0);
|
||||||
}
|
}
|
||||||
|
// endregion
|
||||||
// -------------------------------------------------------------------------- Constructor end
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置单元格值处理逻辑<br>
|
* 设置单元格值处理逻辑<br>
|
||||||
@ -384,45 +382,6 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
|||||||
return this.currentRow.get();
|
return this.currentRow.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取Content-Disposition头对应的值,可以通过调用以下方法快速设置下载Excel的头信息:
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* response.setHeader("Content-Disposition", excelWriter.getDisposition("test.xlsx", CharsetUtil.CHARSET_UTF_8));
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @param fileName 文件名,如果文件名没有扩展名,会自动按照生成Excel类型补齐扩展名,如果提供空,使用随机UUID
|
|
||||||
* @param charset 编码,null则使用默认UTF-8编码
|
|
||||||
* @return Content-Disposition值
|
|
||||||
*/
|
|
||||||
public String getDisposition(String fileName, Charset charset) {
|
|
||||||
if (null == charset) {
|
|
||||||
charset = CharsetUtil.UTF_8;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isBlank(fileName)) {
|
|
||||||
// 未提供文件名使用随机UUID作为文件名
|
|
||||||
fileName = IdUtil.fastSimpleUUID();
|
|
||||||
}
|
|
||||||
|
|
||||||
fileName = StrUtil.addSuffixIfNot(URLEncoder.encodeAll(fileName, charset), isXlsx() ? ".xlsx" : ".xls");
|
|
||||||
return StrUtil.format("attachment; filename=\"{}\"", fileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取Content-Type头对应的值,可以通过调用以下方法快速设置下载Excel的头信息:
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* response.setContentType(excelWriter.getContentType());
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @return Content-Type值
|
|
||||||
* @since 5.6.7
|
|
||||||
*/
|
|
||||||
public String getContentType() {
|
|
||||||
return isXlsx() ? ExcelUtil.XLSX_CONTENT_TYPE : ExcelUtil.XLS_CONTENT_TYPE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置当前所在行
|
* 设置当前所在行
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user