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();
}
}
}

效果:

最新文章

  1. unity下载文件三(http异步下载)
  2. Apache CXF实现Web Service(4)——Tomcat容器和Spring实现JAX-RS(RESTful) web service
  3. aix用命令查监听端口对应的进程
  4. laravel5的坑
  5. mongoDb 给表添加+ 删除字段
  6. Java随机数生产算法
  7. [转]Laravel 4之控制器
  8. 疯狂Android第一章:Android环境配置以及基本概念
  9. webpack入门必知必会
  10. Spring注解问题,[action中注入service失败
  11. JDBC(MySQL)一周学习总结(一)
  12. python之yield的一些应用
  13. swagger-ui中测试接口(enum传值) 报400错误
  14. php中 ord() 和 chr() 处理 utf8 字符串
  15. java.util.Map
  16. R语言编程艺术#03#列表(list)
  17. SparkR(R on Spark)编程指南 含 dataframe操作
  18. 自学如何去学习jQuery
  19. python 多线程中的同步锁 Lock Rlock Semaphore Event Conditio
  20. linux下echo与time服务的程序实现

热门文章

  1. Django框架简易图
  2. Django基础命令
  3. Beta冲刺-(2/3)
  4. JS监听浏览器标签页的显示与隐藏
  5. rocketmq运维管理
  6. JS高阶函数--------map、reduce、filter
  7. UITableView和MJReFresh结合使用问题记录
  8. 多线程之同时更改数据问题--启用lock
  9. 【RabbitMQ】Centos7安装RabbitMQ
  10. 洛谷P1982 小朋友的数字——题解