public class ExcelCreateUtil {
private static final Logger log = LoggerFactory.getLog(ExcelCreateUtil.class);
/**
* 生成 excel 文件
*
* @param resulsts excel 内容
* @param header excel表头
* @param fileName excel文件名
* @return
*/
public static File createExcelFile(List resulsts, LinkedHashMap<String, String> header, String filePath, String fileName) {
if (StringUtils.isNotEmpty(fileName)) {
String fileSuffix = fileName.substring(fileName.length() - 5).toLowerCase();
if (".xlsx".equals(fileSuffix)) {
return createXLSXFile(resulsts, header, filePath, fileName);
} else if (".csv".equals(fileSuffix.substring(0))) {
return createCSVFile(resulsts, header, filePath, fileName);
} else {
log.info("需要生成的文件名({})系统暂不支持!", fileName);
return null;
}
}
log.info("文件名为空!");
return null;
}
/**
* 在输出流中 生成 excel 文件
*
* @param resulsts excel 内容
* @param header excel表头
* @param outputStream 输出流
* @return
*/
public static void createExcelFile(List resulsts, LinkedHashMap<String, String> header, OutputStream outputStream) {
if (outputStream == null) {
log.warn("文件输出流为空!");
}
createCSVFile(resulsts, header, outputStream);
}
private static File createXLSXFile(List<Object> resulsts, LinkedHashMap<String, String> header, String filePath, String fileName) {
FileOutputStream out = null;
try {
Workbook wb = new SXSSFWorkbook(100); // keep 100 rows in memory, exceeding rows will be flushed to disk
Sheet sh = wb.createSheet();
// 设置 excel 的默认宽度为20个字
poi生成excel文件(通用方法)
最新推荐文章于 2024-05-07 15:35:31 发布