`

PoiExcel帮助类

    博客分类:
  • POI
阅读更多
package com.jala.finance.util;


import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
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.HSSFCellUtil;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.util.CellRangeAddress;

/**
 * poi 实现excel帮助类
 * @author zhanghongxin
 *
 */
public class PoiExcelUtil {
	private static final Log log = LogFactory.getLog(PoiExcelUtil.class);
	
	/**
	 * 功能:将HSSFWorkbook写入Excel文件
	 * @param 	wb		HSSFWorkbook
	 * @param 	absPath	写入文件的相对路径
	 * @param 	wbName	文件名
	 */
	public static void writeWorkbook(HSSFWorkbook wb,String fileName){
		FileOutputStream fos=null;
		try {
			//???写入为何没有文件路径呢?
			fos=new FileOutputStream(fileName);
			wb.write(fos);
		} catch (FileNotFoundException e) {
			log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));
			e.printStackTrace();
		} catch (IOException e) {
			log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));
			e.printStackTrace();
		} finally{
			try {
				if(fos!=null){
					fos.close();
				}
			} catch (IOException e) {
				log.error(new StringBuffer("[").append(e.getMessage()).append("]").append(e.getCause()));
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 功能:创建HSSFSheet工作簿
	 * @param 	wb	HSSFWorkbook
	 * @param 	sheetName	String
	 * @return	HSSFSheet
	 */
	public static HSSFSheet createSheet(HSSFWorkbook wb,String sheetName){
		HSSFSheet sheet=wb.createSheet(sheetName);//创建sheet并设置sheet名字
		sheet.setDefaultColumnWidth(20);//设置默认列宽
		sheet.setGridsPrinted(true);//设置网格打印
		sheet.setDisplayGridlines(true);//设置显示网格线
		return sheet;
	}
	
	/**
	 * 功能:创建HSSFRow
	 * @param 	sheet	HSSFSheet
	 * @param 	rowNum	int
	 * @param 	height	int
	 * @return	HSSFRow
	 */
	public static HSSFRow createRow(HSSFSheet sheet,int rowNum,int height){
		HSSFRow row=sheet.createRow(rowNum);//根据行号创建行
		row.setHeight((short)height);//设置行高
		return row;
	}
	
	/**
	 * 功能:创建CellStyle样式
	 * @param 	wb				HSSFWorkbook	
	 * @param 	backgroundColor	背景色	
	 * @param 	foregroundColor	前置色
	 * @param	font			字体
	 * @return	CellStyle
	 */
	public static CellStyle createCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){
		CellStyle cs=wb.createCellStyle();
		cs.setAlignment(halign);
		cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
		cs.setFillBackgroundColor(backgroundColor);
		cs.setFillForegroundColor(foregroundColor);
		cs.setFillPattern(CellStyle.SOLID_FOREGROUND);
		cs.setFont(font);
		return cs;
	}
	
	/**
	 * 功能:创建带边框的CellStyle样式
	 * @param 	wb				HSSFWorkbook	
	 * @param 	backgroundColor	背景色	
	 * @param 	foregroundColor	前置色
	 * @param	font			字体
	 * @return	CellStyle
	 */
	public static CellStyle createBorderCellStyle(HSSFWorkbook wb,short backgroundColor,short foregroundColor,short halign,Font font){
		CellStyle cs=wb.createCellStyle();
		cs.setAlignment(halign);
		cs.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
		cs.setFillBackgroundColor(backgroundColor);
		cs.setFillForegroundColor(foregroundColor);
		cs.setFillPattern(CellStyle.SOLID_FOREGROUND);
		cs.setFont(font);
		cs.setBorderLeft(CellStyle.BORDER_THIN);
		cs.setBorderRight(CellStyle.BORDER_THIN);
		cs.setBorderTop(CellStyle.BORDER_THIN);
		cs.setBorderBottom(CellStyle.BORDER_THIN);  
		return cs;
	}
	
	/**
	 * 功能:创建CELL
	 * @param 	row		HSSFRow	
	 * @param 	cellNum	int
	 * @param 	style	HSSFStyle
	 * @return	HSSFCell
	 */
	public static HSSFCell createCell(HSSFRow row,int cellNum,CellStyle style){
		HSSFCell cell=row.createCell(cellNum);
		cell.setCellStyle(style);
		return cell;
	}
	
	/**
	 * 功能:合并单元格
	 * @param 	sheet		HSSFSheet
	 * @param 	firstRow	int
	 * @param 	lastRow		int
	 * @param 	firstColumn	int
	 * @param 	lastColumn	int
	 * @return	int			合并区域号码
	 */
	public static int mergeCell(HSSFSheet sheet,int firstRow,int lastRow,int firstColumn,int lastColumn){
		return sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,firstColumn,lastColumn));	
	}
	
	/**
	 * 功能:创建字体
	 * @param 	wb			HSSFWorkbook	
	 * @param 	boldweight	short
	 * @param 	color		short
	 * @return	Font	
	 */
	public static Font createFont(HSSFWorkbook wb,short boldweight,short color,short size){
		Font font=wb.createFont();
		font.setBoldweight(boldweight);
		font.setColor(color);
		font.setFontHeightInPoints(size);
		return font;
	}
	
	/**
	 * 设置合并单元格的边框样式
	 * @param	sheet	HSSFSheet	
	 * @param 	ca		CellRangAddress
	 * @param 	style	CellStyle
	 */
	public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress ca,CellStyle style) {  
	    for (int i = ca.getFirstRow(); i <= ca.getLastRow(); i++) {  
	        HSSFRow row = HSSFCellUtil.getRow(i, sheet);  
	        for (int j = ca.getFirstColumn(); j <= ca.getLastColumn(); j++) {  
	            HSSFCell cell = HSSFCellUtil.getCell(row, j);  
	            cell.setCellStyle(style);  
	        }  
	    }  
	}
}

 

分享到:
评论

相关推荐

    poi excel poi excel poi excel

    ### POI Excel知识点详解 #### 一、Jakarta POI简介与Apache POI的作用 Jakarta POI 是 Apache POI 的早期项目名称,它提供了一组 API 来...希望本文能够帮助您更好地理解和使用 Apache POI 进行 Excel 文件的操作。

    poi Excel写操作帮助类

    ### poi Excel写操作帮助类知识点解析 #### 一、引言 Apache POI 是一个用于读写 Microsoft Office 格式文件(如 .doc、.xls、.ppt 等)的 Java API。其中,HSSF(对应 .xls 文件)和 XSSF(对应 .xlsx 文件)是两...

    poi excel转换成bean

    在Java开发中,Apache POI 是一个非常流行的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,包括Excel工作簿。标题“poi excel转换成bean”涉及到的关键技术是使用Apache POI从Excel文件中读取数据并...

    java_poi导入excel通用工具类

    这个"java_poi导入excel通用工具类"是利用Java的POI库和一些额外的技术来实现对Excel数据的导入功能,使得开发人员能够方便地将Excel数据转化为Java对象或者对已有对象进行填充。下面我们将深入探讨相关的知识点。 ...

    poi 操作excel模板

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。在Java开发中,POI库被广泛用于生成、修改和读取Excel文档。本篇将深入探讨如何利用Apache POI来操作Excel模板,以及如何读取数据...

    poi excel导出,组合表头

    综上所述,这个项目的核心在于利用Apache POI库创建具有复杂表头结构的Excel文件,这对数据报告、数据分析等场景非常有帮助。通过阅读和理解这些源代码,开发者可以学习到如何在Java中高效地处理Excel文件,尤其是...

    poi导出excel通用类

    标题“poi导出excel通用类”指的是使用Apache POI库创建一个可以用于导出Excel文件的Java类。Apache POI是开源项目,提供了一组API,使得开发者可以在Java应用程序中读写Microsoft Office格式的文件,包括Excel。在...

    POI 操作Excel工具类

    Apache POI 是一个开源项目,专门用于处理 Microsoft Office 文件格式,包括 Excel。在这个场景中,我们关注的是如何使用 POI 操作 Excel 工具类。...希望这对你在使用 POI 处理 Excel 工具类时有所帮助。

    poi excel JAR包

    本文将深入探讨"poi excel JAR包"的相关知识点,帮助开发者理解如何利用Apache POI库来解析和操作Excel文件。 Apache POI 是一个Java API,它允许程序员创建、修改和显示MS Office格式的文件。它的名字来源于...

    POI Excel最新官方开发包及文档

    - **用户模型API**:详细解释每个类和方法的功能,以及如何使用它们来操作Excel文件。 - **示例代码**:提供实际运行的代码片段,帮助理解如何执行特定任务。 - **常见问题解答**:解答在使用过程中可能遇到的问题和...

    POI生成excel报表

    ### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式...以上就是使用Apache POI生成Excel报表的主要知识点,希望对你有所帮助。

    java_poi导入excel通用工具类V0915

    总结来说,"java_poi导入excel通用工具类V0915" 是一个强大且灵活的工具,可以帮助开发者高效地完成Java环境中Excel数据的导入工作。通过使用反射、注解等技术,它可以适应各种复杂的导入需求,并且能够处理含有公式...

    自定义POI EXCEL模板

    在Java中,使用Apache POI操作Excel文件时,通常会涉及到`XSSFWorkbook`(用于处理.xlsx文件)或`HSSFWorkbook`(用于处理.xls文件)类,` XSSFSheet `,` XSSFRow `,` XSSFCell `等类,以及各种方法来设置样式和...

    基于POI的Excel多Sheet页导出导入工具类

    在Java开发中,Apache POI库是一个非常重要的工具,它允许程序员读取、写入和修改Microsoft Office格式的文件,包括Excel。...通过不断实践和优化,这个工具类可以帮助你更高效地处理Excel相关的任务。

    POI 生成EXCEL2007【含例子】

    这些代码可能包含了上述所有步骤,帮助开发者更好地理解如何使用Apache POI来处理XLSX格式的Excel文件。 学习和理解这些知识点对于开发需要处理Excel文件的Java应用至关重要,特别是在数据导入导出、报表生成、自动...

    POI Excel导出,我的又一个模板方法

    而"工具"标签则可能意味着博主分享了一些辅助工具或库,帮助更高效地使用POI。 由于没有具体的博客内容,以上是基于题目信息和Apache POI库的一般性介绍。在实际阅读博客后,你可以得到更多关于博主如何实现Excel...

    POI操作Excel常用方法总结.docx

    3. **POI Excel文档结构类**:这些类是构建和操作Excel文档的基础: - `HSSFWorkbook`:表示一个Excel工作簿。 - `HSSFSheet`:代表Excel的一个工作表。 - `HSSFRow`:表示工作表中的行。 - `HSSFCell`:表示行...

    poi读取合并单元格帮助类

    在探讨“poi读取合并单元格帮助类”的知识点时,我们首先需要理解Apache POI库在Java中的作用以及如何处理Excel文件中的合并单元格。Apache POI是一个开源的API,它允许程序创建、修改和显示Microsoft Office格式的...

    poi ExcelUtils demo下载

    "poi ExcelUtils demo下载" 这个标题表明我们关注的是一个与Apache POI相关的工具,名为ExcelUtils。Apache POI是Java库,用于读写Microsoft Office格式的文件,特别是Excel(.xlsx 和 .xls)文件。ExcelUtils则可能...

    POI excel单元格顔色设定

    ### POI Excel单元格颜色设定详解 在使用Apache POI进行Excel操作时,经常会遇到需要对单元格的颜色进行设定的情况。...希望本文能帮助大家更好地理解和掌握POI在Excel单元格颜色设定方面的应用。

Global site tag (gtag.js) - Google Analytics