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 ...
随机推荐
- acid. cap
BASE是下面三个术语的缩写: 基本可用(Basically Available) 软状态(Soft state) 最终一致(Eventually consistent) 目前最快的KV数据库,10W ...
- word 使用总结
1.标题: 开始->标题栏 2.插入目录: 引用---->更新目录 3.保持分页:页面布局->分隔符->分页符
- LeetCode 867 Transpose Matrix 解题报告
题目要求 Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped ov ...
- BouncyCastle 密钥转换 - Java
转自: https://blog.csdn.net/a351945755/article/details/63707040 1. PKCS#8 转 PKCS#1 You will need Bounc ...
- 洛谷P3224 永无乡 [HNOI2012] 线段树/splay/treap
正解:线段树合并 解题报告: 传送门! 这题也是有很多解法,eg:splay,treap,... 然而我都不会我会学的QAQ! 反正今天就只讲下线段树合并怎么做QAQ 首先看到这样子的说第k重要的是什 ...
- 【PyQt5-Qt Designer】QMessageBox 弹出框总结
QMessageBox QMessageBox类中常用方法 方法 描述 information(QWdiget parent,title,text,buttons,defaultButton) 弹出 ...
- pycharm换行
Pycharm自动换行 只对当前文件有效的操作是菜单栏->View -> Active Editor -> Use Soft Wraps. 要是想对所有文件都起到效果,就要在sett ...
- 中文全文检索讯搜xunsearch安装
Xunsearch (迅搜)是一套免费开源的专业中文全文检索解决方案,简单易用而且 功能强大.性能卓越能轻松处理海量数据的全文检索.它包含后端索引.搜索服务程序和前端 脚本语言编写的开发工具包(称之为 ...
- 如何将wordpress所有文章批量改为已发布状态
用wordpress建站的一个好处就是bd站长工具平台上有数据结构插件,可以认为bd默认支持wp发展,另外一种建站程序是discuz.我们在用wordpress发布文章时,特别是那种多用户投稿的文章一 ...
- Scala泛型[T]的使用
package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界(对类进行限制) * 上边 ...