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的更多相关文章

  1. POI导出excel的简单demo

    目前使用过两种导出excel的方式,一种是如题所示的使用POI的方式进行数据的导出,这种方式一般只有在处理比较多的数据或者说需要导出的excel表格中有图片之类的需要特殊处理的文件的时候使用:还有一种 ...

  2. poi导出excel

    Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...

  3. POI导出EXCEL经典实现

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

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

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

  5. java中使用poi导出excel表格数据并且可以手动修改导出路径

    在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下

  6. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  7. 重构:以Java POI 导出EXCEL为例2

    前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...

  8. POI导出EXCEL经典实现(转)

    http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html 1.Apache POI简介 Apache POI是Apache软件基 ...

  9. 使用POI导出excel基础篇

    最近搞了下POI导出Excel,听说很多次,却是第一次搞. 在pom.xml中引入依赖 <dependency> <groupId>org.apache.poi</gro ...

随机推荐

  1. Algorithm1: 全排列

    全排列 思想:      这是一个全排列问题,需要使用递归实现,将数组中的所有元素和第一个元素交换,求后面n-1个元素的全排列.      按照这个条件递归下去,知道元素的个数只有一个的时候,输出所有 ...

  2. java程序设计基础篇 复习笔记 第五单元

    1. method header: modifier, return value type, method signature(method name, parameter) method body ...

  3. redis的String类型以及其操作

    Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...

  4. Axure RP 7.0 注册码

    2016.01.25安装可用   Axure RP 7.0 注册码  用户名:axureuser  序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6 ...

  5. ubuntu maven install&config

    可以通过命令直接安装,我还是用文件安装. 1,下载apache-maven-3.5.0-bin.tar.gz二进制压缩文件 https://maven.apache.org/download.cgi ...

  6. [AirFlow]AirFlow使用指南一 安装与启动

    1. 安装 通过pip安装: xiaosi@yoona:~$ pip install airflow 如果速度比较慢,可以使用下面提供的源进行安装: xiaosi@yoona:~$ pip insta ...

  7. windows上操作git基本命令

    今天准备整理一下代码,重温一下Git的基本命令,好久不用忘得差不多了. 1. 进入某个目录: 进入D盘,然后进入D盘的名为git的文件夹: $ cd D: $ cd Git 2. 返回上一级目录: $ ...

  8. c语言第4次作业

    题目7-2九九乘法表 1.代码: #include<stdio.h> int main() { int N, i, j, q; scanf("%d",&N); ...

  9. xgboost系列之应用xgboost的注意事项

    问题:win和mac平台运行相同的xgboost代码,效果不同? 解决:xgboost的参数colsample_bytree设置为1.

  10. 【导航】JennyHui没有宏大的计划,只有坚持!坚持!

    学英语 口语  Bingo口语笔记 听力 VOA 词汇 生词积累 座右铭 随手记 TED X - > 笔记 JennyHui要成为程序猿(加油!!菜鸟终会成为大牛的!!) 后端知识 Python ...