Excel的导入导出功能
POI组件的详细介绍文档:
https://www.cnblogs.com/huajiezh/p/5467821.html
.xls 对应 HSSFWorkbook book=new HSSFWorkbook(io);
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
.xlsx 对应 XSSFWorkbook book=new XSSFWorkbook(io))
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
controller
package com.test.domi.controller; import com.test.domi.annotation.IsFileWanner;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolationException;
import java.io.OutputStream; @Validated
@RestController
@RequestMapping("/excel")
public class ExcelController { @GetMapping("/download")
public void download(HttpServletResponse response) throws Exception{
XSSFWorkbook workbook = new XSSFWorkbook();
//获取文档信息,并配置
// DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation();
//创建一个Excel表单,参数为sheet的名字
XSSFSheet sheet = workbook.createSheet("课调答卷表");
//创建表头
setTitle(workbook, sheet);
//新增数据行,并且设置单元格数据
int rowNum = 1;
for (int i=0;i<2;i++) {
XSSFRow row = sheet.createRow(rowNum);
row.createCell(0).setCellValue(1);
row.createCell(1).setCellValue(2);
row.createCell(2).setCellValue(3);
row.createCell(3).setCellValue(4);
rowNum++;
}
String fileName = "survey-answer";
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName + ".xlsx");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//清空response
//response.reset();
//设置response的Header
//OutputStream os = new BufferedOutputStream(response.getOutputStream()); OutputStream os = response.getOutputStream(); //将excel写入到输出流中
workbook.write(os);
//finally关闭流
os.flush();
os.close(); } /***
* 设置表头
* @param workbook
* @param sheet
*/
private void setTitle(XSSFWorkbook workbook, XSSFSheet sheet){
XSSFRow row = sheet.createRow(0);
//设置列宽,setColumnWidth的第二个参数要乘以256,这个参数的单位是1/256个字符宽度
sheet.setColumnWidth(0, 10*256);
sheet.setColumnWidth(1, 20*256);
sheet.setColumnWidth(2, 20*256);
sheet.setColumnWidth(3, 100*256); //设置为居中加粗
XSSFCellStyle style = workbook.createCellStyle();
XSSFFont font = workbook.createFont();
font.setBold(true);
style.setFont(font); XSSFCell cell;
cell = row.createCell(0);
cell.setCellValue("序号");
cell.setCellStyle(style); cell = row.createCell(1);
cell.setCellValue("单选");
cell.setCellStyle(style); cell = row.createCell(2);
cell.setCellValue("多选");
cell.setCellStyle(style); cell = row.createCell(3);
cell.setCellValue("简答");
cell.setCellStyle(style);
} /***
* 上传Excel
* @param file
*/
@ExceptionHandler(ConstraintViolationException.class)
@PostMapping("/importEmp")
public Boolean importEmp(@RequestParam("file") @IsFileWanner(fileTypes = {"xls","xlsx"},fileSize = 113L) MultipartFile file) throws Exception{
//附件类型的注解校验封装
//判断文件的后缀,用响应的解析类解析
if (file==null) {
return false;
}
try {
XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
int sheets = workbook.getNumberOfSheets();
for (int i = 0; i < sheets; i++) {
XSSFSheet sheetAt = workbook.getSheetAt(i);
int physicalNumberOfRows = sheetAt.getPhysicalNumberOfRows();
System.out.println("nihao");
} } catch (Exception e) {
return false;
}
return true;
}
}
Excel的导入导出功能的更多相关文章
- poi实现excel的导入导出功能
Java使用poi实现excel的导入导出功能: 工具类ExcelUtil,用于解析和初始化excel的数据:代码如下 package com.raycloud.kmmp.item.service.u ...
- Spring MVC 实现Excel的导入导出功能(2:Excel的导入优化和Excel的导出)
Excel的导入V2优化版 有些时候文件上传这一步骤由前端来处理,只将上传后的 URL 传输给后端(可以参考上一文中的图片上传功能),也就是导入请求中并不会直接处理 MultipartFile 对象, ...
- laravel框架excel 的导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. ...
- SSH框架使用poi插件实现Excel的导入导出功能
采用POI生成excel结构 直接贴出代码 excel表格导出功能 action代码: struts.xml配置: 前台jsp代码:
- Spring MVC 实现Excel的导入导出功能(1:Excel的导入)
简介 这篇文章主要记录自己学习上传和导出Excel时的一些心得,企业办公系统的开发中,经常会收到这样的需求:批量录入数据.数据报表使用 Excel 打开,或者职能部门同事要打印 Excel 文件,而他 ...
- postman 测试Excel文件导入导出功能
1.导入的测试方法 选择form-data,key值填写方法对应的参数,选择File,Value处上传文件即可. 2. 导出的测试方法 在导出文件的时候,响应结果是乱码,然后在测试的时候选择下载,下载 ...
- Laravel Excel 实现 Excel-CSV 文件导入导出功能
Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...
- C#实现Excel的导入导出
Excel作为日常使用工具,在开发过程中经常会用到其导入导出功能.经过一个小的练习,学习了下导入导出功能. 导出篇: 从数据库查询到所要导出的数据,以xml的形势保存下来,最后输出excel的格式,保 ...
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
随机推荐
- FlinkCEP - Complex event processing for Flink
https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/libs/cep.html 首先目的是匹配pattern sequenc ...
- py文件传输
本文参考:http://blog.163.com/kongdelu2009@yeah/blog/static/1119952072009102562126194/ 发送端程序: # -*- codin ...
- ANT入门&用ANT编译java项目
第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组.为了提高开发效率,采用这种编译项目的方法. 最近接触到flex项目,采用eclipse自动编译的 ...
- 20165317 学习基础和C语言基础调查
学习基础和C语言基础调查 关于优势技能 说来惭愧,读书多年,爱好不少,但是真的能拿的出手的.能被叫做特长的不多.至今,能在同龄人中处于较领先位置的也只有从四年级开始练起的乒乓球.记得开始练习乒乓球是从 ...
- jmeter发送https请求
- rem设置
html{ font-size:10vw; }
- MySQL+InnoDB semi-consitent read原理及实现分析(转)
add by zhj: 主要讲的是在MySQL在Repeatable Read和Read Committed级别下,加锁时的不同,在Read Committed隔离级别下,只对where 中满足条件的 ...
- 关于Oxygen版 Eclipse JSP或html 中<option>标签嵌入jstl 如<c:if>出现报错
Oxygen版 Eclipse JSP或html 中<option>标签嵌入jstl 如<c:if>出现报错 好好的学框架的整合,结果在<option>中加入< ...
- 什么是url?
什么是URL? URL是统一资源定位器(Uniform Resource Locator)的缩写,也被称为网页地址,是因特网上标准的资源的地址. URL举例 http://www.sohu.com/s ...
- centos6.8上yum安装zabbix3.2
centos6.8上yum安装zabbix3.2 zabbix3.2安装文档:https://www.zabbix.com/documentation/3.2/manual/installation/ ...