简单的使用POI导出excel
package org.test; 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.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.CellStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; /**
* Excel导入导出通用工具类
* @author sunzhenyang on 2017-10-10
*
*/
public class ExcelUtils { private final static String path="F://"; public static void main(String[] args) throws IOException {
List<String>[] list = new ArrayList[2];
List<String> lists = new ArrayList<String>();
lists.add("aaaa");
lists.add("bbbb");
lists.add("cccc");
lists.add("dddd");
List<String> lists1 = new ArrayList<String>();
lists1.add("11111");
lists1.add("22222");
lists1.add("33333");
lists1.add("44444");
list[0]=lists;
list[1]=lists1;
uploadExcel(list);
} /**
* 导出
* @param list
* @throws IOException
*/
private static void uploadExcel(List<String>[] list) throws IOException {
//1、创建workbook工作本,对应一个excel
//HSSFWorkbook wb = new HSSFWorkbook(); // xls 格式 == 2003
XSSFWorkbook wb = new XSSFWorkbook(); // xlsx 格式 == 2007 //2、生成一个sheet,对应excel的sheet,参数为excel中sheet显示的名字
XSSFSheet sheet = wb.createSheet("sheet1"); XSSFRow row = sheet.createRow(0);
row.setHeight((short) 800);// 设定行的高度 //5、创建row中的单元格,从0开始
XSSFCell cell = row.createCell(0);//我们第一列设置宽度为0,不会显示,因此第0个单元格不需要设置样式
cell.setCellValue("优惠协议表");//设置单元格中内容 第一行第一列
createSheet(wb,sheet,cell,row); //6、输入数据
for (int i = 0; i < list.length; i++) {
row = sheet.createRow(i+1); //设置行
for (int j = 0; j < list[i].size(); j++) {
//同第五步
cell = row.createCell(j+1);//创建列
cell.setCellValue(list[i].get(j)); //向列中赋值
}
} //8、输入excel
FileOutputStream os = new FileOutputStream(path+"123abcdefg.xlsx");
wb.write(os);
os.close(); System.out.println("导出成功!"); } /**
* 创建第一行的标题样式 和 名称
* @param wb
* @return
*/
private static void createSheet(XSSFWorkbook wb,XSSFSheet sheet,XSSFCell cell,XSSFRow row ) {
XSSFCellStyle style1 = setStyle(wb);
//3、设置sheet中每列的宽度,第一个参数为第几列,0为第一列;第二个参数为列的宽度,可以设置为0。
sheet.setColumnWidth(0, 20*256);//4、生成sheet中一行,从0开始
sheet.setColumnWidth(1, 20*256);
sheet.setColumnWidth(2, 20*256);
sheet.setColumnWidth(3, 20*256);
sheet.setColumnWidth(4, 20*256); cell = row.createCell(1);//从第1个单元格开始,设置每个单元格样式
cell.setCellValue("第一列");//设置单元格中内容
cell.setCellStyle(style1);//设置单元格样式
cell = row.createCell(2);//第二个单元格
cell.setCellValue("第二列");
cell.setCellStyle(style1);
cell = row.createCell(3);//第三个单元格
cell.setCellValue("第三列");
cell.setCellStyle(style1);
cell = row.createCell(4);//第三个单元格
cell.setCellValue("第四列");
cell.setCellStyle(style1); } /**
* 设置样式
* @param wb
* @return
*/
private static XSSFCellStyle setStyle(XSSFWorkbook wb) {
//1.5、生成excel中可能用到的单元格样式
//首先创建字体样式
XSSFFont font = wb.createFont();//创建字体样式
font.setFontName("宋体");//使用宋体
font.setFontHeightInPoints((short) 10);//字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗
//然后创建单元格样式style
XSSFCellStyle style1 = wb.createCellStyle();
style1.setFont(font);//将字体注入
style1.setWrapText(true);// 自动换行
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
style1.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());// 设置单元格的背景颜色
style1.setFillPattern(CellStyle.SOLID_FOREGROUND);
style1.setBorderTop((short) 1);// 边框的大小
style1.setBorderBottom((short) 1);
style1.setBorderLeft((short) 1);
style1.setBorderRight((short) 1);
return style1;
} }

简单的使用POI导出excel的更多相关文章
- POI导出excel的简单demo
目前使用过两种导出excel的方式,一种是如题所示的使用POI的方式进行数据的导出,这种方式一般只有在处理比较多的数据或者说需要导出的excel表格中有图片之类的需要特殊处理的文件的时候使用:还有一种 ...
- poi导出excel
Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...
- POI导出EXCEL经典实现
1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- java中使用poi导出excel表格数据并且可以手动修改导出路径
在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- 重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...
- POI导出EXCEL经典实现(转)
http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html 1.Apache POI简介 Apache POI是Apache软件基 ...
- 使用POI导出excel基础篇
最近搞了下POI导出Excel,听说很多次,却是第一次搞. 在pom.xml中引入依赖 <dependency> <groupId>org.apache.poi</gro ...
随机推荐
- 将封装了envi功能的IDL类导出成java类,方便java调用
目的: 用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用.(本来想直接通过GP工具调用的,但是没有授权文件) 操作步骤: ...
- 12.18 分布式系统下的session
广义的session: 会话控制,可以理解成为一种保存key-value的机制 从key的方面来看:sessionId和token sessionId: 服务端请求客户端的时候,服务端通过setcoo ...
- Week14《Java程序设计》第14次作业总结
Week14<Java程序设计>第14次作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何 ...
- APUE学习笔记——3.文件共享与fcntl介绍
基本概念 内核使用3个数据结构描述一个打开的文件:进程表.文件表.V节点表 首先了解3种数据结构的概念 1 进程表 每一个进程有一个进程表.进程表里是一组打开的文件描述符,如标 ...
- .net的session详解
http://blog.csdn.net/justin_wkf/article/details/5746914#comments
- 在IE中MVC控制器中返回JSON格式的数据时提示下载
最近做项目时,视图中用jquery.form.js异步提交表单时,接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如 ...
- Cannot mix incompatible Qt library (version 0x40805) with this library (version 0x40801)
问题描述 今天运行我的 linux 上的 go 语言 IDE liteide 突然报错,错误如下: Cannot mix incompatible Qt library (version 0x4080 ...
- ss-libev 源码解析udp篇 (2)
UDP relay的代码基本都在udprelay.c中,无论ss-local还是ss-server的代码都在一起,使用宏MODULE_LOCAL,MODULE_REMOTE等区分开.代码虽然不是很多, ...
- sql基础语法复习(二)-- 分组,连接的使用
一.深入学习 group by group by ,分组,顾名思义,把数据按什么来分组,每一组都有什么特点. 1.我们先从最简单的开始: select count(*) from tb1 group ...
- VC dimension and Model complexity
可以把growth function m_H(N)的upper bound用N^(k-1)来限制, for N large, k>=3 Thus, 定义: VC Dimension: maxim ...