java poi.xssf 导入ex_Excel导入导出工具——POI XSSF的使用

packagecn.monolog.diana.excel.controller;importcn.monolog.diana.excel.util.ExcelUtil;importcn.monolog.diana.excel.model.Person;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.OutputStream;importjava.net.URLEncoder;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;/*** 用于模拟导入导出组件

* created on 2019-05-21*/@Controller

@RequestMapping("/excel")public classExcelController {/*** 导出

*@paramresponse*/@RequestMapping(value= "/export")

@ResponseBodypublic void export(HttpServletResponse response) throwsParseException {//获取要导出的数据列表,在生产环境中要从数据库中查询,这里为了简化,自己创建

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

Person p1= new Person(182, "张叁", "建筑", 25, simpleDateFormat.parse("2014-10-01"));

Person p2= new Person(205, "李肆", "结构", 30, simpleDateFormat.parse("2015-10-01"));

Person p3= new Person(311, "王伍", "给排水", 28, simpleDateFormat.parse("2016-10-01"));

Person p4= new Person(377, "赵陆", "电气", 31, simpleDateFormat.parse("2017-10-01"));

Person p5= new Person(505, "蒋柒", "暖通", 26, simpleDateFormat.parse("2018-10-01"));

List personList = new ArrayList<>();

personList.add(p1);

personList.add(p2);

personList.add(p3);

personList.add(p4);

personList.add(p5);//设置文件名、表单名、标题栏

String fileName = "员工信息表" + simpleDateFormat.format(new Date()) + ".xlsx";

String sheetname= "员工信息表";

String[] title= {"编号", "姓名", "专业", "年龄", "入职日期"};//声明表单内容

String[][] content = newString[personList.size()][title.length];//遍历要导出的数据列表,构造表单内容

for (int i=0 ; i

String[] row =content[i];//获取对应的数据实例

Person person =personList.get(i);//填充内容

row[0] =String.valueOf(person.getId());

row[1] =person.getName();

row[2] =person.getMajor();

row[3] =String.valueOf(person.getAge());

row[4] =simpleDateFormat.format(person.getEnrollmentTime());

}//获取文档

XSSFWorkbook workbook =ExcelUtil.getWorkbook(sheetname, title, content);//声明输出流

OutputStream outputStream = null;//响应到客户端

try{//设置响应头

response.setContentType("application/octet-stream;charset=UTF-8");

response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8") );

response.addHeader("Pargam", "no-cache");

response.addHeader("Cache-Control", "no-cache");//获取输出流

outputStream =response.getOutputStream();//用文档写输出流

workbook.write(outputStream);//刷新输出流

outputStream.flush();

}catch(Exception e) {

e.printStackTrace();

}finally{//关闭输出流

if (outputStream != null) {try{

outputStream.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个报错是因为你在代码中把类型为XSSFSimpleShape的对象尝试强制转换为XSSFPicture类型,但是实际上这个转换是不可行的。这个错误的原因可能是你在使用hutool进行Excel文档导出时,没有正确导入org.apache.poi.xssf.usermodel.XSSFWorkbook这个类所在的包。如果你想要解决这个问题,你需要确保你的项目中已经引入了org.apache.poi JAR包,并且正确导入了需要使用的类,比如XSSFWorkbook。这个JAR包可以支持对office全系excel文件的解析。你可以参考导入的类的示例来导入其他需要的类,比如XSSFCell和XSSFRow等。这样就可以避免出现这个报错了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java利用POI解析Excel及图片](https://blog.csdn.net/hgg923/article/details/89924022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook错误](https://blog.csdn.net/tomatoarmys/article/details/123609544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [org.apache.poi JAR包 Java](https://download.csdn.net/download/u014156358/9583484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值