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

easyui+springboot +poi实现导出与导入(常见问题的总结)

导出

前端 发送get请求:
$uploadQA.on(“click”, “#btn-downloadDD”, function () {
window.location.href = Util.constants.DOCEDIT_MANAGE_IPO + “地址”;
});
easyui+springboot +poi实现导出与导入(常见问题的总结)
后代control层代码

easyui+springboot +poi实现导出与导入(常见问题的总结)
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文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。