废话不说,直接上代码
package com.pzoom.xiaochen.excel;
import java.io.OutputStream;
import java.util.ArrayList;
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.hssf.util.HSSFColor;
public class ExcelFileGenerator {
private final int SPLIT_COUNT = 15; //Excel每个工作表的行数
private ArrayList fieldName = null; //excel数据的抬头栏,即名称栏
private ArrayList fieldData = null; //excel导出的实际数据
private HSSFWorkbook workBook = null;//一个excel文件
//有参构造器,限定了使用此类时,必须首先构建好两个list参数,并将所需数据放入上述两个list。
//其中fieldName这个list可以使用泛型约束List<String>
//fieldData这个可以使用泛型约束List<List<Object>>
public ExcelFileGenerator(ArrayList fieldName, ArrayList fieldData) {
this.fieldName = fieldName;
this.fieldData = fieldData;
}
/**
* @return HSSFWorkbook
*/
public HSSFWorkbook createWorkbook() {
workBook = new HSSFWorkbook();//创建一个工作簿
int rows = fieldData.size();//清点出输入数据的行数
int sheetNum = 0;//将工作表个数清零
//根据数据的行数与每个工作表所能容纳的行数,求出需要创建工作表的个数
if (rows % SPLIT_COUNT == 0) {
sheetNum = rows / SPLIT_COUNT;
} else {
sheetNum = rows / SPLIT_COUNT + 1;
}
for (int i = 1; i <= sheetNum; i++) {
HSSFSheet sheet = workBook.createSheet("Page " + i);//创建工作表
HSSFRow headRow = sheet.createRow(0); //创建第一栏,抬头栏
for (int j = 0; j < fieldName.size(); j++) {
HSSFCell cell = headRow.createCell(j);//创建抬头栏单元格
//设置单元格格式
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
sheet.setColumnWidth(j, 6000);
HSSFCellStyle style = workBook.createCellStyle();
HSSFFont font = workBook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
short color = HSSFColor.RED.index;
font.setColor(color);
style.setFont(font);
//将数据填入单元格
if(fieldName.get(j) != null){
cell.setCellStyle(style);
cell.setCellValue((String) fieldName.get(j));
}else{
cell.setCellStyle(style);
cell.setCellValue("-");
}
}
//创建数据栏单元格并填入数据
for (int k = 0; k < (rows < SPLIT_COUNT ? rows : SPLIT_COUNT); k++) {
if (((i - 1) * SPLIT_COUNT + k) >= rows)
break;
HSSFRow row = sheet.createRow(k + 1);
ArrayList rowList = (ArrayList) fieldData.get((i - 1)
* SPLIT_COUNT + k);
for (int n = 0; n < rowList.size(); n++) {
HSSFCell cell = row.createCell( n);
if(rowList.get(n) != null){
cell.setCellValue((String) rowList.get(n).toString());
}else{
cell.setCellValue("");
}
}
}
}
return workBook;
}
//将信息写入输出流的方法。
public void exportExcel(OutputStream os) throws Exception {
workBook = createWorkbook();
workBook.write(os);
os.close();
}
}
测试类在下面
@Test
public void testExcel() throws Exception
{
// ExcelFileGenerator generator = new ExcelFileGenerator(new ArrayList<String>("1,2,3"),new ArrayList<String>("aa","bb","cc"),);
ExcelFileGenerator generator = new ExcelFileGenerator(Lists.newArrayList("1","2","3"), Lists.newArrayList(Lists.newArrayList("aa","bb","cc"), Lists.newArrayList("dd","ee","ff")));
generator.exportExcel(new FileOutputStream(new File("a.xls")));
}
我用的guava库里的东西
分享到:
相关推荐
Java编程语言在处理Excel文件时提供了多种库,其中之一就是JXL。这个库使得在Java中读写Excel文件变得相当直观和高效。标题“非常简洁的java读写EXCEL源代码”以及描述中提到的“非常简单,还赠送个JXL的包”都暗示...
接下来,我们来看一个简单的Java写Excel文件的实例。这个实例将创建一个Excel文件,并填充一些数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import...
在Java编程中,读写Excel文件是一项常见的任务,特别是在数据处理、数据分析或报表生成的场景下。本篇文章将深入探讨如何使用Java进行Excel文件的读取与写入操作,主要聚焦于Apache POI库,这是一个广泛使用的开源...
Java读写Excel是一项常见的任务,尤其在数据处理和报表生成中。Xxl-Excel是一个流行的Java库,专门用于处理Excel文件,提供了简单易用的API,使得开发人员能够方便地进行Excel的读取和写入操作。在这个示例中,我们...
在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都可能用到这个功能。本示例主要介绍如何使用Java进行Excel文件的读写操作,涉及的关键技术包括Apache POI库和jar包...
Java 读写Excel是开发过程中常见的一项任务,尤其在数据处理、报表生成或者数据分析等领域。在Java中,我们可以使用各种库来实现Excel的读写功能,例如Apache POI、JExcelAPI、OpenCSV等。本示例中可能使用的是...
本文将深入探讨Java编程语言中如何使用Apache POI库和JExcelAPI(JXL)来读取、写入及操作Excel文件,同时也包括设置列宽以及处理合并或拆分的单元格内容。 首先,Apache POI是Apache软件基金会的一个开源项目,专...
在Java编程环境中,处理Excel文件是一项常见的任务,无论是读取数据进行分析,还是写入数据进行报表生成。本文将深入探讨如何使用Java进行Excel的读写操作,主要基于Apache POI库,这是一个强大的API,允许程序员...
java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel
java读写Excel,POI.JAR,Word内容读取
Java写Excel是一个常见的任务,特别是在数据处理和报告生成的场景中。为了在Java程序中创建Excel文件,开发者通常会利用第三方库,这些库被打包成JAR(Java Archive)文件,方便集成到Java项目中。本篇文章将深入...
java将list数据写入指定文件名的excel文档中
在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都需要用到相关的库。在Java中,我们可以借助第三方库来实现Excel文件的读写操作。"java读写Excel文件所需jar包"这个...
在Java编程中,处理Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Java Excel API (JExcelAPI) 是一个广泛使用的库,用于读取、创建和修改Microsoft Excel文件。在本篇中,我们将深入...
本篇文章将深入探讨“flex+java读写excel文件”这一主题,基于提供的标签和压缩包子文件名称,我们将重点讲解Flex与Java如何协同工作来实现Excel文件的导入与导出功能。 Flex是一种开源的富互联网应用程序(RIA)...
自己封装的java读写excel2010的库,拿来直接用!操作更简单!样例请查看:http://blog.ijustyce.com/?post=359
本教程将详细介绍如何使用`jcom`来实现Java写Excel的实例,并涵盖关键知识点。 首先,`jcom`库利用Java的JNI(Java Native Interface)技术,通过调用Windows平台上的`dll`文件与Excel进行通信。在Java项目中,你...
在Java编程中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都可能需要用到。本文将深入探讨Java中用于读写Excel的组件,并提供相关的实践指导。 一、Apache POI库 Apache POI是...
### 使用Java读写Excel文档的关键知识点 #### 一、引言 随着企业信息化程度的不断提高,Excel作为一种常用的数据处理工具,在日常工作中的应用越来越广泛。Java作为一款强大的编程语言,能够很好地与Excel进行交互...