spring mvc中导入导出excel

这篇博客介绍了如何在Spring MVC项目中利用Apache POI库进行Excel的导入和导出。首先,讲述了需要导入的依赖 poi-4.1.2.jar 和 xwork-core-2.3.15.3.jar。接着,详细讲解了如何写入和读取Excel文件,包括创建form表单,配置Spring-web.xml,以及在Controller中实现具体功能的方法。

POI介绍

 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能

导入jar包:poi-4.1.2.jar,xwork-core-2.3.15.3.jar

1、写excel
package excel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ExcelTest {

    public static void main(String[] args)  throws  Exception{
        HSSFWorkbook workbook =new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("服务报表");
        HSSFRow row = sheet.createRow(0);

        HSSFCell cell = row.createCell(0);
        cell.setCellType(CellType.STRING);
        cell.setCellValue("类型");

        HSSFCell cell1 = row.createCell(1);
        cell1.setCellType(CellType.STRING);
        cell1.setCellValue("次数");

        Map<String,Integer>  dbs = new HashMap<>();
        dbs.put("咨询",10);
        dbs.put("建议",20);

        Set<String> typs = dbs.keySet();
        int i = 1;
        for(String type:typs) {
            HSSFRow row2 = sheet.createRow(i++);
            HSSFCell cel2 = row2.createCell(0);
            cel2.setCellType(CellType.STRING);
            cel2.setCellValue(type);
            HSSFCell cell3 = row2.createCell(1);
            cell3.setCellType(CellType.NUMERIC);
            cell3.setCellValue(dbs.get(type));
        }

        File file = new File("E:\\a.xls");
        workbook.write(file);

    }
}
2、读取excel
package excel;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;

import java.io.File;
import java.io.FileInputStream;


public class ExcelTest2 {

    public static void main(String[] args)  throws  Exception{
        File file = new File("E:\\a.xls");
        HSSFWorkbook workbook =new HSSFWorkbook(new FileInputStream(file));
        HSSFSheet sheetAt = workbook.getSheetAt(0);
        for(Row r:sheetAt) {
            for(Cell c:r) {
                c.setCellType(CellType.STRING);
                System.out.print(c.getStringCellValue() +"\t");
            }
            System.out.println();
        }

    }
}
3、准备form表单
<form enctype="multipart/form-data" method="post" action="${basePath}/product/upload">
  <input  name="file" type="file"/>
    <input  name="上传" type="submit"/>
</form >
4、Spring-web.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
5、在controlller中的编写的方法
package com.cc.web.controller;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("/product")
public class ProductController {
    @RequestMapping("/list")
    public String listSeviceReport() {
        return  "~basd/product";
    }
	//到入excel的方法
    @RequestMapping("/upload")
    public  String uploadExcel(MultipartFile file) throws  Exception {
        HSSFWorkbook workbook =new HSSFWorkbook(file.getInputStream());
        HSSFSheet sheetAt = workbook.getSheetAt(0);
       for(Row r:sheetAt) {
           for(Cell c:r) {
               c.setCellType(CellType.STRING);
               System.out.print(c.getStringCellValue() +"\t");
           }
           System.out.println();
       }

       return  null;
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值