java导入EXCEL的工具类(以spring-webmvc-4.0.4jar为基础)

简介: 1.本工具类继承于  spring-webmvc-4.0.4jar文件心中的一个类   AbstractExcelView2.代码如下package com.skjd.util;import java.

1.本工具类继承于  spring-webmvc-4.0.4jar文件心中的一个类   AbstractExcelView

2.代码如下

package com.skjd.util;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.web.servlet.view.document.AbstractExcelView;

import com.skjd.util.PageData;
import com.skjd.util.Tools;
/**
* 导入到EXCEL
* 类名称:ObjectExcelView.java
* 类描述: 
* @author FH
* 作者单位: 
* 联系方式:
* @version 1.0
 */
public class ObjectExcelView extends AbstractExcelView{

    @Override
    protected void buildExcelDocument(Map<String, Object> model,
            HSSFWorkbook workbook, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
        Date date = new Date();
        String filename = Tools.date2Str(date, "yyyyMMddHHmmss");
        HSSFSheet sheet;
        HSSFCell cell;
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
        sheet = workbook.createSheet("sheet1");
        
        List<String> titles = (List<String>) model.get("titles");
        int len = titles.size();
        HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
        headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        HSSFFont headerFont = workbook.createFont();    //标题字体
        headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        headerFont.setFontHeightInPoints((short)11);
        headerStyle.setFont(headerFont);
        short width = 20,height=25*20;
        sheet.setDefaultColumnWidth(width);
        for(int i=0; i<len; i++){ //设置标题
            String title = titles.get(i);
            cell = getCell(sheet, 0, i);
            cell.setCellStyle(headerStyle);
            setText(cell,title);
        }
        sheet.getRow(0).setHeight(height);
        
        HSSFCellStyle contentStyle = workbook.createCellStyle(); //内容样式
        contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        List<PageData> varList = (List<PageData>) model.get("varList");
        int varCount = varList.size();
        for(int i=0; i<varCount; i++){
            PageData vpd = varList.get(i);
            for(int j=0;j<len;j++){
                String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : "";
                cell = getCell(sheet, i+1, j);
                cell.setCellStyle(contentStyle);
                setText(cell,varstr);
            }
            
        }
        
    }

}

3.特此送上案例如下

/**
     * 导出数据
     * @return
     * @throws Exception 
     */
    @RequestMapping(value="/excel")
    public ModelAndView excel(Page page) throws Exception{
        logBefore(logger, "导出数据");
        ModelAndView mv = this.getModelAndView();        
        PageData pd = new PageData();
        pd = this.getPageData();
        page.setPd(pd);
        Map<String,Object> dataMap = new HashMap<String,Object>();
        List<String> titles = new ArrayList<String>();
        titles.add("订单号");
        titles.add("乘客姓名");
        titles.add("用户手机号");
        titles.add("状态");
        titles.add("类型");
        titles.add("司机姓名");
        titles.add("司机手机号");
        titles.add("车牌号");
        titles.add("订单创建时间");
        titles.add("订单结束时间");
        titles.add("里程");
        titles.add("费用");
        dataMap.put("titles", titles);
        List<PageData> orderList = orderService.datalist(page);
        List<PageData> varList = new ArrayList<PageData>();
        for(int i=0;i<orderList.size();i++){
            PageData vpd = new PageData();
            vpd.put("var1", orderList.get(i).getString("ordernumber"));
            vpd.put("var2", orderList.get(i).getString("customer_name"));
            vpd.put("var3", orderList.get(i).getString("customer_phone"));
            if(orderList.get(i).get("order_status")!=null){                
                if("0".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "生成订单");}
                if("1".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "司机已接单");}
                if("2".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "确认上车");}
                if("3".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "行程结束");}
                if("4".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "完成订单");}
                if("5".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "到达乘客上车点");}
                if("99".equals(orderList.get(i).get("order_status").toString())){vpd.put("var4", "取消订单");}
            }
            
            if(orderList.get(i).get("order_type")!=null){
                
                if("1".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "实时专车");}
                if("2".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "预约专车");}
                if("3".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "送机");}
                if("4".equals(orderList.get(i).get("order_type").toString())){vpd.put("var5", "接机");}
            }
            
            vpd.put("var6", orderList.get(i).getString("name"));
            vpd.put("var7", orderList.get(i).getString("phone"));
            vpd.put("var8",  orderList.get(i).getString("license_number"));
            
            if(orderList.get(i).get("create_time")!=null){vpd.put("var9", orderList.get(i).get("create_time").toString());}
            
            if(orderList.get(i).get("end_time")!=null){vpd.put("var10", orderList.get(i).get("end_time").toString());}
            
            /*vpd.put("ordernumber", value);*/
            if(orderList.get(i).get("actual_price")!=null){vpd.put("var12", orderList.get(i).get("actual_price").toString());}
            
            varList.add(vpd);
        }
        dataMap.put("varList", varList);
        ObjectExcelView erv = new ObjectExcelView();
        mv = new ModelAndView(erv,dataMap);
        return mv;
        
    }
    
    

4.加上截图进行说明

 

 

 

 

 

 

 

 

目录
打赏
0
0
0
0
1
分享
相关文章
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
5月前
|
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
99 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
180 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
345 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
6月前
|
Java 些许公共工具类
Java 些许公共工具类
42 1
|
8月前
|
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等