package com.soon.poi.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import com.soon.poi.domain.Student;
/**
*@descriptions:Excel导入导出工具类
*@author:xfh
*createTime:2018-8-29下午3:24:15
*/
public class ExcelUtils {
private ExcelUtils(){};
/**
* 导出Excel工具方法
* @param stuList
*/
public static void writeExcel(List <Student> stuList) {
//定义文件保存路径(没有此文件创建,有此文件覆盖内容)
String outputFile="E:\\学生表导出.xls";
//定义表头
String titles[]={"序号","姓名","班级","性别"};
//创建工作薄
HSSFWorkbook workbook=new HSSFWorkbook();
//创建sheet页
HSSFSheet sheet=workbook.createSheet();
//创建默认行高
//sheet.setDefaultRowHeightInPoints(30);
//创建第一行表头行
HSSFRow rowHead = sheet.createRow(0);
//创建空的单元格
HSSFCell cell=null;
//添加表头
for(int i=0;i<titles.length;i++){
cell=rowHead.createCell(i);
//设置列宽
//sheet.setColumnWidth(cell.getColumnIndex()-1, 10*256);
//表头中插入值
cell.setCellValue(titles[i]);
}
//添加数据
for(int i=0;i<stuList.size();i++){
Student stu = stuList.get(i);
//新建一行
HSSFRow nextRow = sheet.createRow(i+1);
//合并单元格
/*CellRangeAddress region = new CellRangeAddress(i+1,i+1,3,4);
sheet.addMergedRegion(region);*/
//第i+1行 第一列
cell = nextRow.createCell(0);
cell.setCellValue(stu.getId());
//第i+1行 第二列
cell = nextRow.createCell(1);
cell.setCellValue(stu.getName());
//第i+1行 第三列
cell = nextRow.createCell(2);
cell.setCellValue(stu.getClazz());
//第i+1行 第三列
cell = nextRow.createCell(3);
cell.setCellValue(stu.getSex());
}
//创建文件
try {
//创建文件输出流
FileOutputStream fos = new FileOutputStream(outputFile);
//写出文件
workbook.write(fos);
//刷新关闭输出流
fos.flush();
fos.close();
System.out.println("创建Excel文件成功!");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* 导入Excel工具方法
*/
public static void readExcel() {
List<Student> stuList = new ArrayList<Student>();
FileInputStream fis=null;
//创建file对象(导入文件所在的位置)
File file =new File("E:\\student1.xls");
//读入指定的xls文件
try {
fis=new FileInputStream(file);
//将导入的文件转化成WordBook对象
Workbook workbook = new HSSFWorkbook(fis);
//获取第一张sheet表
Sheet sheet = workbook.getSheetAt(0);
//遍历sheet表的每一行
for(Row row:sheet){
//排除第一行的sheet表表头数据
if(row.getRowNum()==0){
continue;
}else{
//获取表中数值类型数据
double stuNo = row.getCell(0).getNumericCellValue();
int stuId=(int)stuNo;//强转int
//获取表中字符串类型数据
String stuName = row.getCell(1).getStringCellValue();
String stuClass = row.getCell(2).getStringCellValue();
String stuSex = row.getCell(3).getStringCellValue();
//读出的数据实例化一个学生对象,并放入集合中
Student student=new Student(stuId, stuName, stuClass, stuSex);
stuList.add(student);
}
}
} catch (IOException e) {
e.printStackTrace();
}finally{
//关闭流
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//遍历集合信息输出,模拟存入数据库
for(Student stu:stuList){
System.out.println("学号:"+stu.getId()+"\t姓名:"+stu.getName()
+"\t性别:"+stu.getSex()+"\t班级:"+stu.getClazz());
}
}
}
maven项目Excel导入导出demo
4星 · 超过85%的资源 需积分: 34 38 浏览量
2018-08-29
17:01:19
上传
评论 1
收藏 16KB ZIP 举报
11Jeffrey
- 粉丝: 29
- 资源: 24
最新资源
- 服务器概述服务器概述服务器概述服务器概述.txt
- 华中农业大学python实验题.txt
- 海康威视相机采图交叉编译示例程序,c++
- DETR-基于Tensorflow实现DETR目标检测算法-附流程教程+项目源码-优质项目实战.zip
- 3d激光slam地图发布程序,3d地图点云处理,c++程序
- 送给妈妈的一束鲜花.zip(母亲节祝福HTML源码)
- 稀疏化DETR-基于Pytorch实现稀疏化DETR-SparseDETR-附流程教程+项目源码-优质项目实战.zip
- 人工分类:SLTM的微博评论二分类数据集
- (自适应手机端)响应式房产合同知识产权网站pbootcms模板 企业管理类网站源码下载.zip
- (自适应手机端)响应式动力刀座pbootcms网站模板 五金机械设备类网站源码下载.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈