package com.test.order.config;

import com.test.order.domain.HavalDO;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.*; import java.io.*;
import java.util.ArrayList;
import java.util.List; /**
* @program: TestDemo
* @Date: 2018/8/19 12:55
* @Author: Mr.Niu
* @Description:
*/
public class ExcelHelper { public List<HavalDO> excleIn() {
List<HavalDO> list = new ArrayList<HavalDO>();
HavalDO havalDO = null;
try {
InputStream is = new FileInputStream("E:\\bzk.xlsx");
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
// 获取选项卡对象 第0个选项卡 , 因为们这里只有一个选项卡,如果你每个选项卡的内容是一样,可以通过循环取出
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
// 循环取出每行的值
for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
havalDO = new HavalDO();
//注意Poi读取的内容是有类型的,处理起来也jxl有所不同
String str = null;
if(xssfRow.getCell(0)!=null){
xssfRow.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
str = xssfRow.getCell(0).getStringCellValue();
}
String [] strs=str.split("-");
String append = null;
for (String s1 :strs){
append+=s1;
}
String strss = append.substring(4,append.length());
havalDO.setOem(strss);
havalDO.setName(xssfRow.getCell(1).getStringCellValue());
havalDO.setPrice(xssfRow.getCell(2).getNumericCellValue());
list.add(havalDO);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
} /**
* 针对Book类进行导出的操作
*
* @param list
*/
public void excleOut(List<HavalDO> list) {
// 创建Excel文档
XSSFWorkbook hwb = new XSSFWorkbook();
// 通过excle对象创建一个选项卡对象
XSSFSheet sheet = hwb.createSheet("sheet1");
HavalDO havalDO = null;
// 循环list创建行
// 新建一行
XSSFRow row = sheet.createRow(0);
// 设置i+1行第0列的数据
row.createCell(0).setCellValue("oem");
// 设置i+1行第1列的数据
row.createCell(1).setCellValue("name");
// 设置i+1行第2列的数据
row.createCell(2).setCellValue("price_4s");
//
for (int i = 1; i < list.size(); i++) {
// 新建一行
row = sheet.createRow(i);
havalDO = list.get(i);
// 设置i+1行第0列的数据
row.createCell(0).setCellValue(havalDO.getOem());
// 设置i+1行第1列的数据
row.createCell(1).setCellValue(havalDO.getName());
// 设置i+1行第2列的数据
row.createCell(2).setCellValue(havalDO.getPrice());
}
OutputStream out = null;
try {
out = new FileOutputStream("E:/bookPoi1.xlsx");
hwb.write(out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
ExcelHelper eh = new ExcelHelper();
List<HavalDO> lh = eh.excleIn();
Integer i = 0;
for (HavalDO hd : lh) {
i++;
System.out.println("第" + i + "行数据:" + hd.toString());
}
eh.excleOut(lh);
}
}

excel导入到java/导出到excel的更多相关文章

  1. java导出数据EXCEL的工具类(以spring-webmvc-4.0.4jar为基础)

    1.本工具类继承于  spring-webmvc-4.0.4jar文件心中的一个类   AbstractExcelView 2.代码如下 package com.skjd.util; import j ...

  2. 记一次 Java 导出大批量 Excel 优化

    常用的excel导出方案,详情见Spring Boot 入门(十二):报表导出,对比poi.jxl和esayExcel的效率,其中jxl.esayEscel 底层都是基于 poi,它们仅仅是对 poi ...

  3. winform excel导入--自带office.interop.excel方式

    用npoi方式,遇到一个问题,有的excel用加密软件(盖章,只读等)生成的解析不了,所以换成自带的方式,可以解决. 需要引用系统自带Microsoft.office.interop.excel pu ...

  4. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  5. 用Java导出为excel表格

    导出的是最基础的excel表格,没有任何样式. <input type="button" value="输出到Excel" onclick='output ...

  6. java导出数据Excel总结

    //创建获取到JFileChooser的文件名的JTextField public JTextField getTextField(Container c){ JTextField textField ...

  7. Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框(转载)

    https://blog.csdn.net/evangel_z/article/details/7332535

  8. java动态生成带下拉框的Excel导入模板

    在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...

  9. 项目产品化——Excel数据库模板化导入(java)

    Excel导入可能是代码开发中比較常见的功能,一个项目假设有多个地方须要excel导入数据库.那么开发的工作量也将比較大,项目产品化过程中,将这么一个类似的功能进行封装合并也是必要的.封装好的代码仅仅 ...

随机推荐

  1. FFmpegInterop 库在 Windows 10 应用中的编译使用

    FFmpegInterop 简介 FFmpegInterop 是微软推出的封装 FFmpeg 的一个开源库,旨在方便在 Windows 10.Windows 8.1 以及 Windows Phone ...

  2. sql使用自连接去重复查询

    查询公司与公司最新刷新的一条信息 select t1.userid,t1.id,t1.title,t1.RegType,t1.Salary,t1.SubjectID,t1.RefreshTime,t2 ...

  3. 4.kafka的安装部署

    为了安装过程对一些参数的理解,我先在这里提一下kafka一些重点概念,topic,broker,producer,consumer,message,partition,依赖于zookeeper, ka ...

  4. tp3.2博客详情页面查询上一篇下一篇

  5. JavaScirpt(JS)——js介绍及ECMAScript

    一.JavaScript历史发展 JavaScript语言的历史:http://javascript.ruanyifeng.com/introduction/history.html 1994年12月 ...

  6. 中值滤波C语言优化

    中值滤波C语言优化 图像平滑是图像预处理的基本操作,本文首先用不同的方法对一张图片做预处理比较它们效果的不同,然后针对中值滤波,实现了一种快速实现.(其实是copy的opencv实现,呵呵).因为op ...

  7. spring boot 项目在启动时执行指定sql文件

    参考博客: https://www.jianshu.com/p/88125f1cf91c 1. 启动时执行 当有在项目启动时先执行指定的sql语句的需求时,可以在resources文件夹下添加需要执行 ...

  8. python多重继承

    # 动物 Dog - 狗狗: Bat - 蝙蝠: Parrot - 鹦鹉: Ostrich - 鸵鸟. # 哺乳动物 鸟类 # 能跑 能飞 class Animal(object): pass # 大 ...

  9. js:JavaScript中的ActiveXObject对象

    JavaScript中的ActiveXObject对象作用: https://blog.csdn.net/pl1612127/article/details/77862174

  10. Python中深浅拷贝 垃圾回收与 super继承(六)

    1 python拷贝 深拷贝,浅拷贝 与引用三者的区别 import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy ...