通过poi的XSSF实现生成excel文件
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文件的更多相关文章
- POI生成EXCEL文件
POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头( ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- springMVC(4)---生成excel文件并导出
springMVC(4)---生成excel文件并导出 在开发过程中,需要将数据库中的数据以excel表格的方式导出. 首先说明.我这里用的是Apache的POI项目,它是目前比较成熟的HSSF接口, ...
- 如何生成excel文件作为图像识别结果
如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...
- php生成excel文件的简单方法
生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...
- XLSTransformer生成excel文件简单演示样例
项目结构图: 项目中所用到的jar,能够到http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...
- XLSTransformer生成excel文件
jxls的使用方法: 1)声明一个XLSTransformer对象,生成方式就是使用new操作符 XLSTransformer transformer = new XL ...
- thinkphp整合系列之phpexcel生成生成excel文件
在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...
- 2018年,请不要再使用OLE生成EXCEL文件
输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...
随机推荐
- MyBatis 作用域(Scope)和生命周期
SqlSessionFactoryBuilder SqlSessionFactoryBuilder的作用是创建SqlSessionFactory.一旦创建了SqlSessionFactory,就不再需 ...
- Java基础知识总结--多态
面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据,而外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是 ...
- vue使用element-ui的el-input监听不了回车事件
原因 今天在使用element-ui时,el-input组件监听不了回车事件,如下代码没有想要的效果: <el-input class="search-input" plac ...
- 读取html文件,让其中的内容和notepad打开这个html的样子一样。
然后我写了个python代码,让其读取这个html文件后,内容和这个一样: htmlf=open('13144815898.html','r',encoding="utf-8") ...
- 杭电acm2059-龟兔赛跑 java
一看题就知道是动态规划,不过这要看下如何设置变化数组了 先分析这道题:兔子到达终点的时间时固定的,因此只需要考虑乌龟了,乌龟骑电车和骑自行车的时间,然后计算,因为中间有N个充电站,可以看做N个点(到起 ...
- 3_主流部署方式介绍-Django+mod_wsgi+Apache
安装apache yum install httpd httpd-devel -y 开机自动重启配置 chkconfig httpd on 重新编译安装python 删除编译记录及文件 修改apach ...
- 简易RPC框架-SPI
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- C# GDI+绘图 z
一.坐标系 坐标系是图形设计的基础.GDI+使用三个坐标空间:世界.页面和设备,其中,世界坐标是用于建立特殊图形世界模型的坐标系,也是在.NET Framework中传递给方法的坐标系.而页面坐标系是 ...
- 【转】Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)
本文转自:http://www.wjdiankong.cn/wireshark%E5%92%8Cfiddler%E5%88%86%E6%9E%90android%E4%B8%AD%E7%9A%84tl ...
- PHP性能分析——xhprof(window 安装xhporf)
1 下载xhprof的php扩展 因为官方的xhprof不支持php7,所以采用tideways版本的xhprof 下载地址:windows版tideways_xhprof 将windows版的dll ...