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. 编程进阶:Java小白的序列化Serializable接口

    在之前的学习过程中,我们知道了如何使用FileInputStream输入流和FileOutputStream输出流编写程序读写文件. 下面我们来学习一下如何使用序列化和反序列化读写文件. 一.序列化 ...

  2. linux shell基础编程2

    while循环 语法1: while [ 条件 ] do 命令序列 done 语法2: while read -r line do 命令序列 done (切记while和左中括号一定要有空格) 例子 ...

  3. OLEDB 简单数据查找定位和错误处理

    在数据库查询中,我们主要使用的SQL语句,但是之前也说过,SQL语句需要经历解释执行的步骤,这样就会拖慢程序的运行速度,针对一些具体的简单查询,比如根据用户ID从用户表中查询用户具体信息,像这样的简单 ...

  4. c语言进制转化

    #include <stdio.h> // 进制转化 int main(void) { ; ; int i3 = 0x32C; printf( printf( printf("十 ...

  5. C语言字符数组与字符串

    研究几个案例: 输出图案: #include <stdio.h> void main() { ][] = { {', ' ', ' '}, {', ' '}, {'}, {', ' '}, ...

  6. iPython与notebook的基本用法

    1 Ipython 安装 pip install ipython 2 Notebooke 基本用法 启动ipython使用ipython 启动notebook 使用 ipython notebook ...

  7. 【Linux】GCC编译

    GCC简介 GCC基本用法 GCC程序产生过程 GCC编译选项 一.GCC简介 1.1 GCC特点 Gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的 代 ...

  8. Scope_Pre_Post

    @Scope , 设置bean的生命周期,示例:   @Scope(value="prototype")//设置生存范围,一般用 singleton或prototype 14.@P ...

  9. 三大集合框架之map

    Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象. Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象. Map是 ...

  10. tcp/ip 调优示例

    # Kernel sysctl configuration file for Linux # # Version 1.12 - 2015-09-30 # Michiel Klaver - IT Pro ...