POI向Excel中写入数据及追加数据
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*;
import java.util.ArrayList;
import java.util.List; public class WriteExcel { /**
* 向Excel中写入数据
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception { List<Student> stuList = new ArrayList<Student>();
stuList.add(new Student(12,"lili","深圳南山"));
stuList.add(new Student(13,"liming","深圳宝安"));
stuList.add(new Student(14,"chengming","深圳罗湖")); String filePath = "E:\\ExcelData.xlsx";
boolean flag = fileExist(filePath);
if (flag){
writeExcel(stuList,filePath);
}else {
File file = new File(filePath);
writeExcel(stuList,filePath);
}
} //判断文件是否存在
public static boolean fileExist(String filePath){
boolean flag = false;
File file = new File(filePath);
flag = file.exists();
return flag;
} //向Excel中写数据
public static void writeExcel(List<Student> list ,String filePath){
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("student");
XSSFRow firstRow = sheet.createRow(0);//第一行表头
XSSFCell cells[] = new XSSFCell[3]; String[] titles = new String[]{"age","name","address"};
//循环设置表头信息
for (int i=0;i<3;i++){
cells[0]=firstRow.createCell(i);
cells[0].setCellValue(titles[i]);
} //遍历list,将数据写入Excel中
for (int i=0;i<list.size();i++){
XSSFRow row = sheet.createRow(i+1);
Student student = list.get(i);
XSSFCell cell = row.createCell(0); //第一列
cell.setCellValue(student.getAge());
cell=row.createCell(1); //第二列
cell.setCellValue(student.getName());
cell=row.createCell(2); //第三列
cell.setCellValue(student.getAddress());
}
OutputStream out = null;
try {
out = new FileOutputStream(filePath);
workbook.write(out);
out.close();
} catch (Exception e){
e.printStackTrace();
}
}
}
效果:
二、向Excel中追加数据
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List; public class AddExcel { /**
* 向Excel中追加内容
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{ List<Student> stuList2 = new ArrayList<Student>();
stuList2.add(new Student(15,"小明","深圳南山"));
stuList2.add(new Student(16,"小王","深圳宝安"));
stuList2.add(new Student(17,"小张","深圳罗湖")); FileInputStream in = new FileInputStream("E:\\ExcelData.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(in);
XSSFSheet sheet = workbook.getSheetAt(0);
XSSFRow row=sheet.getRow(1); FileOutputStream out = new FileOutputStream("E:\\ExcelData.xlsx");
//从第二行开始追加列
/*row=sheet.getRow(1);
row.createCell(3).setCellValue("AAA");
row.createCell(4).setCellValue("BBB");*/ //追加列数据
for(int i=0;i<stuList2.size();i++){
Student student = stuList2.get(i);
row = sheet.getRow(i+1);
row.createCell(3).setCellValue(student.getAge());
row.createCell(4).setCellValue(student.getName());
row.createCell(5).setCellValue(student.getAddress());
} /*//追加行数据
row=sheet.createRow((short)(sheet.getLastRowNum()+1)); //在现有行号后追加数据
row.createCell(0).setCellValue("测试数据"); //设置第一个(从0开始)单元格的数据
row.createCell(1).setCellValue("haha"); //设置第二个(从0开始)单元格的数据*/ try {
out.flush();
workbook.write(out);
out.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
效果:
POI向Excel中写入数据及追加数据的更多相关文章
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...
- 利用POI获取Excel中图片和图片位置
利用POI获取Excel中图片和图片位置(支持excel2003or2007多sheet) 转自:http://blog.csdn.net/delongcpp/article/details/8833 ...
- POI处理Excel中的日期数据类型
在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格 的类型是否则NUMERIC类型, 然后再判断单元格是 ...
- Python向excel中写入数据的方法 方法简单
最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...
- java通过poi读取excel中的日期类型数据或自定义类型日期
Java 读取Excel表格日期类型数据的时候,读出来的是这样的 12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...
- POI操作excel中的日期格式处理
转载:http://blog.csdn.net/fuxiaohui/article/details/6239925 7.3.3 POI中Excel文件Cell的类型 在读取每一个Cell的值的时候,通 ...
- POI处理Excel中各种日期格式问题
前不久写过一篇随笔<EXCEL解析之终极方法WorkbookFactory>,提到使用WorkbookFactory来处理Excel文件数据,最近发现一个问题就是这个办法不能很好的处理各种 ...
- 使用POI导出EXCEL工具类并解决导出数据量大的问题
POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...
- vb.net向Excel中写入值
根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...
随机推荐
- Ubuntu 16.04安装N卡驱动、cuda、cudnn和tensorflow GPU版
安装驱动 最开始在英伟达官网下载了官方驱动,安装之后无法登录系统,在登录界面反复循环,用cuda里的驱动也出现了同样的问题.最后解决办法是把驱动卸载之后,通过命令行在线安装驱动. 卸载驱动: sudo ...
- git分支管理和工作流规范:不同场景细化和演示
https://www.iteye.com/blog/qqtalk-2415889 前两篇介绍了 git基本概念 和 具体的规范,本篇针对不同的使用场景做演示. 分支 分支命名 master 分支名称 ...
- PHP使用HighChart生成股票K线图详解
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- 小程序内置组件swiper,circular(衔接)使用小技巧
swiper,关于滑块的一些效果无缝,断点,视差等等...我想这里就不用做太多的赘述,这里给大家分享一下实战项目中使用circular(衔接)的一点小特性.小技巧,当然你也可以理解为遇到了一个小坑,因 ...
- 【Luogu4191】[CTSC2010] 性能优化
题目链接 题意简述 求循环卷积意义下的 \(A(x)*B(x)^C\). 模数为 n+1 ,长度为 n. Sol 板子题. 循环卷积可直接把点值快速幂来解决. 所以问题就是要快速 \(DFT\),由于 ...
- 理解Python中的__init__和__new__
先来看一段代码: class A(object): # -> don't forget the object specified as base def __new__(cls): print ...
- 【NOIP2013模拟联考5】军训
题目 HYSBZ 开学了!今年HYSBZ 有n 个男生来上学,学号为1-n,每个学生都必须参加军训.在这种比较堕落的学校里,每个男生都会有Gi 个女朋友,而且每个人都会有一个欠扁值Hi.学校为了保证军 ...
- JetSonNano darknet yolov3工程通过CMakeLists.txt配置编译环境
CMakeLists.txt 写的比较糙,有疑问欢迎咨询. option(GPU ON) option(CUDNN ON) option(OPENCV ON) cmake_minimum_requir ...
- pycharm2017版本永久激活
亲测有效,为了以后方便查看,就复制粘贴了一下 声明:转自https://blog.csdn.net/qq_34173491/article/details/81157519 目前比较好用的Python ...
- JSP上传一个文件夹
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...