easyui+springboot +poi实现导出与导入(常见问题的总结)
导出与导入
easyui+springboot +poi
pom.xml里面引入poi
org.apache.poi
poi
3.13
org.apache.poi
poi-ooxml
3.13
org.apache.poi
poi-ooxml-schemas
3.13
导出
前端 发送get请求:
$uploadQA.on(“click”, “#btn-downloadDD”, function () {
window.location.href = Util.constants.DOCEDIT_MANAGE_IPO + “地址”;
});
后代control层代码
service层:
/**
-
单独的问答知识导入模版下载
-
@param request
-
@param response
-
@return
*/
@Override
public Response exportAloneQAKnwlgExcel(HttpServletRequest request, HttpServletResponse response) {
Response aloneQAKnwlgResponse = new Response();
//表头名
String[] title = {“知识标题(必填)”, “知识存储路径(必填)”,“自定义标签”, “问题”, “扩展问”, “答案”};
//sheet名
String sheetName = “独立知识问答模板”;
//下载的文件名
String fileName = “独立知识问答模板.xlsx”;
//创建XSSFWorkbook
XSSFWorkbook workbook = getXSSFWorkbook(sheetName, title);OutputStream os = null;
try {
setResponseHeader(response, fileName);os = response.getOutputStream(); workbook.write(os); os.flush();
} catch (IOException e) {
logger.error(“下载模板失败!”);
aloneQAKnwlgResponse.setRspcode(WebUtil.FAIL);
aloneQAKnwlgResponse.setRspdesc(“下载模板失败!”);return aloneQAKnwlgResponse;
} finally {
if (os != null) { try { os.close(); } catch (IOException e) { logger.error("关闭异常!"); } }
}
aloneQAKnwlgResponse.setRspcode(WebUtil.SUCCESS);
aloneQAKnwlgResponse.setRspdesc(“下载模板成功!”);return aloneQAKnwlgResponse;
}
/**
-
单独的问答知识导入模版下载
-
设置Excel的格式
-
@param sheetName
-
@param title
-
@return
*/
public XSSFWorkbook getXSSFWorkbook(String sheetName, String[] title) {//创建workbook 2007版本
XSSFWorkbook workbook = new XSSFWorkbook();
//创建一个sheet
XSSFSheet sheet = workbook.createSheet(sheetName);
//创建行
XSSFRow row = sheet.createRow(0);
//创建格式
XSSFCellStyle style = workbook.createCellStyle();
//设置边框:
style.setBorderBottom(XSSFCellStyle.BORDER_THIN); //下边框
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);//左边框
style.setBorderTop(XSSFCellStyle.BORDER_THIN);//上边框
style.setBorderRight(XSSFCellStyle.BORDER_THIN);//右边框
//设置格式 居中
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
//设置背景色
style.setFillForegroundColor(new XSSFColor(new Color(204, 204, 204)));// 以给单元格着色
style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); //设置单元格填充样式 SOLID_FOREGROUND纯色使用前景颜色填
XSSFFont font = workbook.createFont();
//设置字体
font.setFontName(“黑体”);
font.setFontHeightInPoints((short) 12);
// 把字体应用到当前的样式
style.setFont(font);XSSFCell cell = null;
//设置表头
for (int i = 0; i < title.length; i++) {
//设置列的宽度
sheet.setColumnWidth(i, 5000);
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}return workbook;
}
/**
-
单独的问答知识导入模版下载
-
发送响应流
-
@param response
-
@param fileName
*/
public void setResponseHeader(HttpServletResponse response, String fileName) {try {
fileName = new String(fileName.getBytes(), “ISO8859-1”);
} catch (UnsupportedEncodingException e) {logger.error("不支持导出!");
}
response.setContentType(“application/octet-stream;charset=ISO8859-1”);
response.setHeader(“Content-Disposition”, “attachment;filename=” + fileName);
response.addHeader(“Pargam”, “no-cache”);
response.addHeader(“Cache-Control”, “no-cache”);
}
/** -
创建头部公共样式与赋值
-
@param sheet
-
@param title
-
@param style
-
@param whiteStyle
*/
private void createHeadRowStyle(XSSFSheet sheet, String[] title, XSSFCellStyle style, XSSFCellStyle whiteStyle,String sheetName) {
//公共属性样式表格创建- 先创建单元格,在给单元格赋值。这样样式不容易出问题
//需要title.length行表格
for (int i = 0; i < title.length; i++) {
XSSFRow row = sheet.createRow(i);
//合并单元格 四个参数-开始行,结束行。开始列,结束列
sheet.addMergedRegion(new CellRangeAddress(i, i, 0, 2));
//设置列的宽度
if(i<3) {
sheet.setColumnWidth(i, 5000);
}else if(i==3){
sheet.setColumnWidth(3, 10000);
}
// 需要4列
for (int j = 0; j < 4; j++) {
if(j<3) {
row.createCell(j).setCellStyle(style);
}else{
row.createCell(j).setCellStyle(whiteStyle);
}
}
}
//公共属性样式赋值
for(int i=0;i<title.length;i++){
XSSFRow row = sheet.getRow(i);
row.getCell(0).setCellValue(title[i]);
}
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。