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. 一个label两种颜色,一个label两种字体

    -(void)addLabel{ UILabel *label = [[UILabel alloc]init]; label.backgroundColor = [UIColor grayColor] ...

  2. Java 多线程 ReadWriteLock

    ReadWriteLock是JDK 1.5提供的读写分离锁,可以减少锁竞争.例如,线程A1.A2和A3进行写操作,线程B1.B2和B3进行读操作,如果使用重入锁或者内部锁,那么理论上所有读之间.读与写 ...

  3. Cocos Creator存储和读取用户数据--官方文档

    存储数据 cc.sys.localStorage.setItem(key, value) 上面的方法需要两个参数,用来索引的字符串键值 key,和要保存的字符串数据 value. 假如我们要保存玩家最 ...

  4. python2中urllib2模块带cookies使用方法

    #!/usr/bin/python # coding=utf-8 #############方式1######################### import urllib2 cookie = & ...

  5. Codefoces909E Coprocessor(拓扑排序)

    http://codeforces.com/problemset/problem/909/E 由于分了两个queue,所以push的时候可以统一操作,不会影响彼此.两个queue相当于是平等的,只是q ...

  6. 演练:调试 Windows 窗体

    Windows 窗体是最常见的托管应用程序之一. Windows 窗体创建标准的 Windows 应用程序. 你可以完成此演练使用 Visual Basic 中, C#,或 c + +. 首先,您必须 ...

  7. golang 无法将Slice类型[]a 转换为 Slice[]b

    因为我想做一个通用的Slice方法,AnySlice,但是将AnySlice定义为[]interface{ } 转换到别的类型,或者相互转换的时候都是会报错. 这是golang比较恶心人的一个地方了, ...

  8. Spark2.2(三十九):如何根据appName监控spark任务,当任务不存在则启动(任务存在当超过多久没有活动状态则kill,等待下次启动)

    业务需求 实现一个根据spark任务的appName来监控任务是否存在,及任务是否卡死的监控. 1)给定一个appName,根据appName从yarn application -list中验证任务是 ...

  9. Visual Studio 2017 扩展

    Visual Studio 2017 扩展 Visual Studio 2017 15.4.4 : 目前是最新的版本号,所有的工具&插件都支持这个版本号.所以请对号入座. ReSharper  ...

  10. Linux远程执行shell命令

    Linux远程执行shell命令   在Linux系统中,我们经常想在A机器上,执行B机器上的SHELL命令. 下面这种方案,是一种流行可靠的方案. 1.SSH无密码登录 # 本地服务器执行(A机器) ...