您的位置:首页 > 编程语言 > Java开发

Java导出excel文件简单实现

2017-11-18 19:29 423 查看
惯例: 引用度娘的介绍

Apache POI [1] 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。

1、导入maven

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.9</version>

</dependency>


2、工具方法

/**
* @param sheetName 表名
* @param header 表头数据
* @param body 主干数据 body.get(i) 对应 i+1行的所有数据
*/
public static void generateExcel(String sheetName, List<String> header, List<List<String>> body, OutputStream out) {
//新建excel报表
HSSFWorkbook excel = new HSSFWorkbook();
//添加一个sheet
HSSFSheet hssfSheet = excel.createSheet(sheetName);
//往excel表格创建一行,excel的行号是从0开始的
// 设置表头
HSSFRow firstRow = hssfSheet.createRow(0);
for (int columnNum = 0; columnNum < header.size(); columnNum ++) {
//创建单元格
HSSFCell hssfCell = firstRow.createCell(columnNum);
//设置单元格的值
hssfCell.setCellValue(header.size() < columnNum ? "-" : header.get(columnNum));
}
// 设置主体数据
for (int rowNum = 0; rowNum < body.size(); rowNum ++) {
//往excel表格创建一行,excel的行号是从0开始的
HSSFRow hssfRow = hssfSheet.createRow(rowNum + 1);
List<String> data = body.get(rowNum);
for (int columnNum = 0; columnNum < data.size(); columnNum ++) {
//创建单元格
HSSFCell hssfCell = hssfRow.createCell(columnNum);
//设置单元格的值
hssfCell.setCellValue(data.size() < columnNum ? "-" : data.get(columnNum));
}
}
try {
excel.write(out);
} catch (IOException e) {
e.printStackTrace();
}
}


3、代码测试

public static void main(String[] args) {
List<String> header = new ArrayList<>(); // 第一行数据
header.add("编号");
header.add("姓名");
header.add("性别");
header.add("手机号");
List<List<String>> body = new ArrayList<>();
List<String> data1 = new ArrayList<>(); // 第二行数据
data1.add("1001");
data1.add("张三");
data1.add("男");
data1.add("12345678900");
List<String> data2 = new ArrayList<>(); // 第三行数据
data2.add("1002");
data2.add("李四");
data2.add("男");
data2.add("12300000000");
body.add(data1);
body.add(data2);
try (
OutputStream out = new FileOutputStream("F:/test.xls") // 输出目的地
) {
POIUtil.generateExcel("sheetName", header, body, out);
} catch (Exception e) {
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐