package com.smart.common.util;
import com.smart.common.constant.ExcelDataType;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.Color;
import java.io.*;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.util.List;
import java.util.*;
/**
* 导出Excel文件(导出“XLSX”格式,支持大数据量导出 @see org.apache.poi.ss.SpreadsheetVersion)
*/
public class ExcelExport {
private static Logger log = LoggerFactory.getLogger(ExcelExport.class);
/**
* 单元格靠左对齐
*/
public static final Integer CELL_ALIGN_LEFT = 1;
/**
* 单元格居中对齐
*/
public static final Integer CELL_ALIGN_CENTER = 2;
/**
* 单元格靠右对齐
*/
public static final Integer CELL_ALIGN_RIGHT = 3;
/**
* 工作薄对象
*/
private SXSSFWorkbook wb;
/**
* 工作表对象
*/
private Sheet sheet;
/**
* 样式列表
*/
private Map<String, CellStyle> styles;
/**
* 当前行号
*/
private int rownum;
/**
* 导出模板工作薄对象
*/
private Workbook workbook;
/**
* 构造函数
*
* 导出文件模板,读取第一个工作表
* @param headerNum
* 标题行号,数据行号=标题行号+1
* @throws InvalidFormatException
* @throws IOException
*/
public ExcelExport(String fileName, int headerNum) throws InvalidFormatException, IOException {
this(new File(fileName), headerNum);
}
/**
* 构造函数
*
* 导出文件模板对象,读取第一个工作表
* @param headerNum
* 标题行号,数据行号=标题行号+1
* @throws InvalidFormatException
* @throws IOException
*/
public ExcelExport(File file, int headerNum) throws InvalidFormatException, IOException {
this(file, headerNum, 0);
}
/**
* 构造函数
*
* 导出文件模板
* @param headerNum
* 标题行号,数据行号=标题行号+1
* @param sheetIndex
* 工作表编号
* @throws InvalidFormatException
* @throws IOException
*/
public ExcelExport(String fileName, int headerNum, int sheetIndex) throws InvalidFormatException, IOException {
this(new File(fileName), headerNum, sheetIndex);
}
/**
* 构造函数
*
* 导出文件模板对象
* @param headerNum
* 标题行号,数据行号=标题行号+1
* @param sheetIndex
* 工作表编号
* @throws InvalidFormatException
* @throws IOException
*/
public ExcelExport(File file, int headerNum, int sheetIndex) throws InvalidFormatException, IOException {
this(file.getName(), new FileInputStream(file), headerNum, sheetIndex);
}
/**
* 构造函数
*
* 导出文件模板对象
* @param headerNum
* 标题行号,数据行号=标题行号+1
* @param sheetIndex
* 工作表编号
* @throws IOException
*/
public ExcelExport(String fileName, InputStream is, int headerNum, int sheetIndex)
throws IOException {
if (StringUtils.isBlank(fileName)) {
throw new RuntimeException("导入文档为空!");
} else if (fileName.toLowerCase().endsWith("xls")) {
this.workbook = new HSSFWorkbook(is);
} else if (fileName.toLowerCase().endsWith("xlsx")) {
this.workbook = new XSSFWorkbook(is);
} else if (fileName.toLowerCase().endsWith("xlsm")) {
this.workbook = new XSSFWorkbook(is);
} else {
throw new RuntimeException("文档格式不正确!");
}
if (this.workbook.getNumberOfSheets() < sheetIndex) {
throw new RuntimeException("文档中没有工作表!");
}
this.sheet = this.workbook.getSheetAt(sheetIndex);
if (this.sheet.getLastRowNum() < 0) {
throw new RuntimeException("文档模板错误!");
}
this.rownum = headerNum + 1;
this.styles = createStyles(workbook);
log.debug("Initialize success.");
}
/**
* 构造函数 -- SXSSFWorkbook
* @param fileName
* @param headerNum
* @param sheetIndex
* @param batchType
* @throws IOException
*/
public ExcelExport(String fileName, int headerNum, int sheetIndex, String batchType)
throws IOException {
if (StringUtils.isBlank(fileName)) {
throw new RuntimeException("导出文档为空!");
} else {
InputStream is = new FileInputStream(new File(fileName));
XSSFWorkbook workb = new XSSFWorkbook(is);
this.wb = new SXSSFWorkbook(workb, 1000);
if (this.wb.getNumberOfSheets() < sheetIndex) {
throw new RuntimeException("文档中没有工作表!");
}
this.sheet = this.wb.getSheetAt(sheetIndex);
this.rownum = headerNum + 1;
this.styles = createStyles(wb);
log.debug("Initialize success.");
}
}
/**
* 构造函数
*
* @param title
* 表格标题,传“空值”,表示无标题
* @param headerMap
* 表头数组
*/
public ExcelExport(String title, Map<String, String> headerMap) {
List<String> headerList = new ArrayList<String>();
headerList.add("序号");
for (String key : headerMap.keySet()) {
headerList.add(headerMap.get(key));
}
initialize(title, headerList);
}
/**
* 构造函数
*
* @param title
* 表格标题,传“空值”,表示无标题
* @param headerList
* 表头列表
*/
public ExcelExport(String title, List<String> headerList) {
// 自动增加序号列
headerList.add(0, "序号");
initialize(title, headerList);
}
/**
* 初始化函数
*
* @param title
* 表格标题,传“空值”,表示无标题
* @param headerList
* 表头列表
*/
private void initialize(String title, List<String> headerList) {
this.wb = new SXSSFWorkbook(500);
this.sheet = wb.createSheet("Export");
this.styles = createStyles(wb);
// Create title
if (StringUtils.isNotBlank(title)) {
Row titleRow = sheet.createRow(rownum++);
titleRow.setHeightInPoints(30);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellStyle(styles.get("title"));
titleCell.setCellValue(title);
sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(),
headerList.size() - 1));
}
// Create header
if (headerList == null) {
throw new RuntimeException("headerList not null!");
}
Row headerRow = sheet.createRow(rownum++);
headerRow.setHeightInPoints(16);
for (int i = 0; i < headerList.size(); i++) {
Cell cell = headerRow.createCell(i);
cell.setCellSty
没有合适的资源?快使用搜索试试~ 我知道了~
基于JavaScript的智能停车场管理平台设计源码
共544个文件
js:138个
java:105个
gif:82个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 32 浏览量
2024-04-03
22:12:36
上传
评论
收藏 17.56MB ZIP 举报
温馨提示
本设计源码提供了一个基于JavaScript的智能停车场管理平台。项目包含544个文件,主要使用JavaScript、Java、HTML和CSS编程语言。文件类型包括138个JavaScript脚本文件、105个Java源代码文件、82个GIF图片文件、65个PNG图片文件、42个HTML页面文件、40个JSON配置文件、31个CSS样式文件、10个JPG图片文件、4个SVG文件、3个TTF字体文件。该平台采用科学计费,支持多种计费方案的灵活切换,适用于商场、小区、停车场等多种场景。同时,该平台实现了无人值守模式,通过云端控制实现无岗亭模式下的车辆自主进出,从而降低人工成本。适合用于学习和实践JavaScript、Java、HTML和CSS技术,以及开发智能停车场相关的管理系统。
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaScript的智能停车场管理平台设计源码 (544个子文件)
cashier.css 415KB
iview.css 316KB
layui.css 71KB
iconfont.css 71KB
index.css 20KB
layer.css 14KB
index.css 13KB
okadmin.css 12KB
layui.mobile.css 10KB
viewer.css 9KB
viewer.min.css 8KB
demo.css 8KB
awesome.css 8KB
laydate.css 7KB
metroStyle.css 6KB
zTreeStyle.css 6KB
reset.css 6KB
oksub.css 5KB
cropper.css 5KB
login_style.css 4KB
common.css 4KB
cropper.min.css 4KB
lightbox.css 3KB
main.css 3KB
lightbox.min.css 2KB
login_new.css 2KB
iview-my.css 2KB
nprogress.css 1KB
login_reset.css 1KB
code.css 1KB
okadmin.theme.css 905B
iconfont.eot 90KB
iconfont.eot 41KB
59.gif 10KB
22.gif 10KB
loading.gif 8KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
4.gif 6KB
zTreeStandard.gif 5KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
21.gif 5KB
20.gif 5KB
29.gif 5KB
metro.gif 5KB
70.gif 4KB
5.gif 4KB
17.gif 4KB
27.gif 4KB
9.gif 4KB
44.gif 4KB
11.gif 4KB
8.gif 4KB
3.gif 4KB
23.gif 4KB
34.gif 4KB
41.gif 4KB
38.gif 4KB
65.gif 3KB
32.gif 3KB
45.gif 3KB
7.gif 3KB
12.gif 3KB
26.gif 3KB
60.gif 3KB
2.gif 3KB
40.gif 3KB
25.gif 3KB
19.gif 3KB
66.gif 3KB
18.gif 3KB
46.gif 3KB
10.gif 3KB
28.gif 3KB
51.gif 3KB
57.gif 3KB
67.gif 3KB
0.gif 3KB
48.gif 3KB
43.gif 3KB
30.gif 2KB
61.gif 2KB
33.gif 2KB
69.gif 2KB
14.gif 2KB
47.gif 2KB
36.gif 2KB
49.gif 2KB
58.gif 2KB
6.gif 2KB
54.gif 2KB
53.gif 2KB
共 544 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
沐知全栈开发
- 粉丝: 4771
- 资源: 3372
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功