maven导入依赖jar包:

        <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.6</version>
</dependency>

java代码:

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
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; public class Demo { public static void main(String[] args) {
// 文件内容
List<Object[]> rows = new ArrayList<Object[]>();
rows.add(new String[] { "编号", "姓名", "成绩" });
rows.add(new Object[] { 1001, "张三", 87.5F });
rows.add(new Object[] { 1002, "李四", 99.5F });
rows.add(new Object[] { 1003, "王五", null });
rows.add(new Object[] { 1004, "小六", 59F }); // 文件路径
String folderPath = "E:\\tmp"; // 文件名称
String fileName = "学生分数"; // 生成文件
new Demo().createExcelFile(rows, folderPath, fileName);
} /**
* 根据[文件内容&文件路径&文件名称],生成一个excel文件
*/
private void createExcelFile(List<Object[]> rows, String folderPath, String fileName) {
try {
// 创建一个Workbook
XSSFWorkbook wb = new XSSFWorkbook(); // 创建一个Sheet
XSSFSheet sheet = wb.createSheet(fileName); // 样式1:设置列宽
sheet.setColumnWidth(0, 2000); // 第一列的宽度为2000
sheet.setColumnWidth(1, 3000); // 第二列的宽度为3000 // 样式1:设置单元格背景
CellStyle titleStyle = wb.createCellStyle();
titleStyle.setFillForegroundColor(IndexedColors.SKY_BLUE.getIndex());
titleStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); // 样式1:设置单元格边框
titleStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); // 下边框
titleStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);// 左边框
titleStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);// 上边框
titleStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);// 右边框 // 样式1:设置单元格字体
Font font = wb.createFont();
// font.setColor((short) 42); // 设置字体颜色
font.setColor(HSSFColor.GREEN.index); // XSSFColor中未找到颜色和short数值的映射,使用HSSFColor来定位颜色的short值
font.setFontName("黑体"); // 设置字体
font.setFontHeightInPoints((short) 12);// 设置字体大小
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);// 粗体显示
titleStyle.setFont(font); // 样式1:设置单元格居中
titleStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 样式2:设置单元格居中
CellStyle contentStyle = wb.createCellStyle();
contentStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 遍历输出每行
for (int i = 0; i < rows.size(); i++) {
// 创建一个row
XSSFRow row = sheet.createRow(i); // 每一行的数据
Object[] rowData = rows.get(i); // 遍历生成每个单元格
for (int j = 0; j < rowData.length; j++) {
// 创建一个cell
XSSFCell cell = row.createCell(j); // 样式:设置单元格样式
if (i == 0) {
cell.setCellStyle(titleStyle);// 使用样式1
} else {
cell.setCellStyle(contentStyle);// 使用样式2
} // 如果为空,就不做设值处理
if (null == rowData[j]) {
continue;
} // 设值处理:假设只有四种类型的数据,如果还有其他类型,根据需要,做格式转换
// String类型数值
if (rowData[j].getClass() == String.class) {
cell.setCellValue((String) rowData[j]);
}
// double类型数值
else if (rowData[j].getClass() == double.class || rowData[j].getClass() == Double.class) {
cell.setCellValue((Double) rowData[j]);
}
// float类型数值
else if (rowData[j].getClass() == float.class || rowData[j].getClass() == Float.class) {
cell.setCellValue((Float) rowData[j]);
}
// integer类型数值
else if (rowData[j].getClass() == int.class || rowData[j].getClass() == Integer.class) {
cell.setCellValue((Integer) rowData[j]);
}
}
} // 文件路径
String filePath = folderPath + File.separator + fileName + ".xls";// 含文件名的全路径,如果是2007及以后的版本,后缀可用.xlsx,向前兼容
File file = new File(filePath); // 如果父目录不存在,创建父目录
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
// 如果已存在,删除旧文件
if (file.exists()) {
file.delete();
} // 将excel内容写入到文件当中
file.createNewFile();
FileOutputStream fileOut = new FileOutputStream(file);
wb.write(fileOut);
fileOut.close(); } catch (Exception e) {
e.printStackTrace();
}
} }

通过poi的XSSF实现生成excel文件的更多相关文章

  1. POI生成EXCEL文件

    POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...

  2. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  3. springMVC(4)---生成excel文件并导出

    springMVC(4)---生成excel文件并导出 在开发过程中,需要将数据库中的数据以excel表格的方式导出. 首先说明.我这里用的是Apache的POI项目,它是目前比较成熟的HSSF接口, ...

  4. 如何生成excel文件作为图像识别结果

    如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...

  5. php生成excel文件的简单方法

    生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...

  6. XLSTransformer生成excel文件简单演示样例

    项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...

  7. XLSTransformer生成excel文件

    jxls的使用方法: 1)声明一个XLSTransformer对象,生成方式就是使用new操作符                 XLSTransformer transformer = new XL ...

  8. thinkphp整合系列之phpexcel生成生成excel文件

    在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...

  9. 2018年,请不要再使用OLE生成EXCEL文件

    输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...

随机推荐

  1. fast-fail事件的产生及其解决办法

    1.fail-fast事件出现的情景 import java.util.*; import java.util.concurrent.*; /* * * * fail-fast事件产生的条件:当多个线 ...

  2. HashMap源码分析和应用实例的介绍

    1.HashMap介绍 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.S ...

  3. 将一个C++的AES加密算法(有向量的)翻译成C#

    /****************************************************************************** Copyright (c) 2012-2 ...

  4. 记事本编辑的Java文件生成文档

    用记事本写的Java源文件生成注释文 1)在命令行(事先调到相关的位置)中输入 -------javadoc -d doc Hello.java--------- 在这里Hello.java是Java ...

  5. Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法

    一. 问题: 如何实现在Oracle数据库中访问其他用户的表时不需加表所属的用户名 二. 举例: Oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 TEST表,需要这样访问 ...

  6. JS_高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法

    一.位置方法 ECMAScript5为数组实例添加了两个位置:indexOf()和 lastIndexOf().这两个方法接收两个参数:要查找的项和(可选的)表示查找起点位置的索引(如在数组[7,8, ...

  7. poj2229 Sumsets (递推)

    http://poj.org/problem?id=2229 看到题目能感觉到多半是动态规划,但是没有清晰的思路. 打表找规律: #include<cstdio> #include< ...

  8. set 容器的用法

    1.set容器的理解 所有元素都会根据元素的键值自动排序,set元素的键值就是实值,实值就是键值.set不允许两个元素有相同的键值.(set的元素不像map那样可以同时拥有实值(value)和键值(k ...

  9. PHP性能分析——xhprof(window 安装xhporf)

    1 下载xhprof的php扩展 因为官方的xhprof不支持php7,所以采用tideways版本的xhprof 下载地址:windows版tideways_xhprof 将windows版的dll ...

  10. mybatis 批量添加

    <insert id="addTrackBatch" parameterType="java.util.List"> INSERT INTO t_t ...