`

java用org.apache.poi包操作excel

    博客分类:
  • JAVA
阅读更多

1.Jakarta POI 是apache的子项目,目标是处理ol2对象。它提供了一组Windows文档操作的Java API。

 

2.EXCEL 结构
HSSFWorkbook excell 文档对象介绍
HSSFSheet excell的表单
HSSFRow excell的行
HSSFCell excell的格子单元
HSSFFont excell字体
HSSFName 名称
HSSFDataFormat 日期格式
在poi1.7中才有以下2项:
HSSFHeader sheet头
HSSFFooter sheet尾
和这个样式
HSSFCellStyle cell样式
辅助操作包括
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表

 

3.简单的用法

创建Excel

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class NewWorkbook {
	
	public static String outputFile = "C:/test1.xls";
	public static void main(String[] args) {
		
		try {
			HSSFWorkbook wb = new HSSFWorkbook();//create new HSSFWorkbook object
			FileOutputStream fileOut = new FileOutputStream(outputFile);
			wb.write(fileOut);//Workbook-->test1.xls
			fileOut.flush();
			fileOut.close();
			System.out.println("The file has been created.");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

简单的Excel写操作

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class CreateCells {

	public static String fileTobewrite = "C:/test1.xls";
	public static void main(String[] args) throws IOException {
		try {
			HSSFWorkbook wb = new HSSFWorkbook();//create new HSSFWorkbook object
			HSSFSheet sheet = wb.createSheet("new sheet");// create new sheet object
			//Create a row and put some cells in it. Rows are 0.
			HSSFRow row = sheet.createRow(0);//create new row
			//Create a cell and put a value in it.
			HSSFCell cell = row.createCell(0);//create new cell
			cell.setCellValue(1);//setting the cell value
			
			//do it on one line
			row.createCell(1).setCellValue(1.2);
			row.createCell(2).setCellValue("test");
			row.createCell(3).setCellValue(true);
			HSSFCellStyle cellStyle = wb.createCellStyle();//new cell style
			cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));// set date style
			HSSFCell dcell = row.createCell(4);//create new cell
			dcell.setCellValue(new Date());
			dcell.setCellStyle(cellStyle);
			HSSFCell csCell = row.createCell(5);
			csCell.setCellType(HSSFCell.ENCODING_UTF_16);
			csCell.setCellValue("中文测试_Chinese Words Test");//set cell code 
			
			row.createCell(6).setCellType(HSSFCell.CELL_TYPE_ERROR);
			
			//write the output to a file
			FileOutputStream fileOut = new FileOutputStream(fileTobewrite);
			wb.write(fileOut);
			fileOut.flush();
			fileOut.close();
			System.out.println("The cells have been added.");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


}

 

简单的Excel读操作

import java.io.FileInputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ReadExcel {
	public static String fileTobeRead = "C:/test1.xls";
	public static String getCellValue(HSSFCell cell){
		String value = null;
		if (cell != null)
		{
			//get the type of the cell
			int cellType = cell.getCellType();
			switch (cellType)
			{
			//""
			case HSSFCell.CELL_TYPE_BLANK :
				value = "";
				break;
			//Boolean
			case HSSFCell.CELL_TYPE_BOOLEAN :
				value = cell.getBooleanCellValue() ? "TRUE" : "FALSE";
				break;
			//Error
			case HSSFCell.CELL_TYPE_ERROR :
				value = "ERR-" + cell.getErrorCellValue();
				break;
			//Formula
			case HSSFCell.CELL_TYPE_FORMULA :
				value = cell.getCellFormula();
				break;
			//Numeric
			case HSSFCell.CELL_TYPE_NUMERIC :
				//Date
				if (HSSFDateUtil.isCellDateFormatted(cell))
				{
					//change to "yyyy-MM-dd"
					DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					value = sdf.format(cell.getDateCellValue());
				}	
				//Number
				else
				{
					value = cell.getNumericCellValue() + "";
				}
				break;
			//String
			case HSSFCell.CELL_TYPE_STRING :
				value = cell.getStringCellValue();
				break;
			//Other
			default :
				value = "Unknown Cell Type:"  + cell.getCellType();
			}
		}
		return value;
		
	}
	
	public static void main(String[] args) {
		try {
			HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(fileTobeRead));
			
			HSSFSheet sheet = wb.getSheet("new sheet");
			//getSheetAt(int index) first sheet index is 0.
			int rowNum = sheet.getPhysicalNumberOfRows();
			int cellNum;
			System.out.println("Row number is " + rowNum);
			HSSFRow row;
			HSSFCell cell;
			for(int i=0;i<sheet.getPhysicalNumberOfRows();i++){
				
				row = sheet.getRow(i);
				cellNum = row.getPhysicalNumberOfCells();
				System.out.println("cell number is " + cellNum);
				for(int j = 0; j < cellNum; j++){
					cell=row.getCell(j);
					
					System.out.println("row " + i + "cell "+ j + ":" + getCellValue(cell));
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

4.设置单元格格式

//set font style red and bold
HSSFFont font = wb.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
			
//create style
HSSFCellStyle cellStyle1 = wb.createCellStyle();
cellStyle1.setFont(font);
			
//use this style
HSSFCell cell1 = row.createCell(1);
cell.setCellStyle(cellStyle1);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("Title");
 
分享到:
评论

相关推荐

    org.apache.poi JAR包 Java

    org.apache.poi JAR包,解决import org.apache.poi.hssf.usermodel.HSSFWorkbook; 支持office全系excel文件解析。 import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; ...

    org.apache.poi*jar包

    在Java开发环境中,`org.apache.poi*jar包`是Apache POI项目的组成部分,包含了处理这些文件所需的类和方法。当你在导入项目时遇到`org.apache.poi*`相关的报错问题,可能的原因和解决方法有以下几点: 1. **缺失...

    org.apache.poi依赖包

    这个"org.apache.poi"依赖包是Java开发者在处理这些文件时不可或缺的工具。它提供了丰富的API,使得在Java环境中读取、写入和操作Office文档变得轻而易举。 Apache POI 3.17 版本是该项目的一个稳定版本,包含了...

    org.apache.poi3.9 jar包

    使用Apache POI库时,你需要导入`org.apache.poi.*`包下的相关类,例如: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; ``` 在3.9版本中,虽然不包含最新...

    org.apache.poi.xwpf.converter.pdf-1.0.6.jar

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。在Java环境中,它提供了一个强大的API,使得开发者能够读取、写入和操作这些文档。在给定的...

    org.apache.poi 3.17最新官方版文件操作jar包

    这个“org.apache.poi 3.17最新官方版文件操作jar包”包含了处理这些文件类型所需的Java库。下面将详细介绍Apache POI 3.17版本中的核心知识点。 1. **文件格式支持**: - Excel处理:Apache POI提供了HSSF(旧版...

    org.apache.poi.xwpf.converter.core-1.0.4.jar

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。在Java环境中,它提供了一组API,使得开发者能够读取、写入以及操作这些文件。"org....

    org.apache.poi.xwpf.converter-0.9.8.jar

    在实际应用中,"org.apache.poi.xwpf.converter-0.9.8.jar"通常会与其他Apache POI库一起使用,如"HSSF"(处理旧版Excel .xls文件)和"XSSF"(处理新式Excel .xlsx文件)。开发者需要在他们的Java项目中引入这个JAR...

    org.apache.poi-ooxml-schemas-3.9 jar包

    总的来说,"org.apache.poi-ooxml-schemas-3.9.jar"是Java开发中不可或缺的一个工具,对于需要处理Excel文件的项目来说,它是提高生产力的关键组件。通过熟练掌握其用法,开发者可以轻松地在Java应用程序中实现各种...

    org.apache.poi.hssf.converter,office转html所需包

    在这个标题为“org.apache.poi.hssf.converter,office转html所需包”的压缩包中,包含了将Office文档转换为HTML格式所需的Java类库。转换过程通常涉及到以下几个关键知识点: 1. **HSSF API**:这是Apache POI提供...

    java用org_apache_poi包操作excel

    java用org_apache_poi包操作excel

    org.apache.poi.xwpf.converter.core-1.0.2.jar.zip

    Apache POI是一个流行的开源Java库,它允许程序员创建、修改和显示Microsoft Office格式的文件,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。在这个特定的场景中,"org.apache.poi.xwpf.converter.core-...

    android 使用poi读取高版本excel

    android 使用poi读取高版本excel, 解决以下这两个错误 java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/stream/XMLEventFactory; at org.apache.poi.openxml4j.opc.internal.marshallers....

    org.apache.poi.xwpf.converter.core-1.0.2-sources

    Apache POI 是一个著名的开源Java库,主要用于处理Microsoft Office格式的文件,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。XWPF是Apache POI项目的一部分,专门用于处理Word文档的XML格式。`org....

    apache.poi所需要的jar包集合

    版本:4.1.0 jar包个数:7个 apache的poi,操作Excel的包,亲测 jdk11 maven项目环境下包含本地jar使用有效,并给出了简单易用的封装。 传送门:我的博文:基于poi4.1.0的Excel表读写操作 日期:2020.12.15日

    apache-poi-3.17(最新稳定版本)

    Apache POI 提供了Java API,使得开发者可以使用Java来读取、写入和修改这些文件。在给定的"apache-poi-3.17(最新稳定版本)"中,我们聚焦于3.17这个稳定版,它是截止到提及时的最新版本。 Apache POI 3.17版本是...

    最新Apache POI 5.2.3jar包和源码

    使用Apache POI,开发者可以创建、读取和修改Excel工作簿、工作表、单元格、公式,甚至可以处理图表、图片和样式。此外,它也支持Word和PowerPoint文件的操作。Apache POI源码的提供使得开发者能够深入理解其内部...

    Apache poi框架jar包

    Apache POI 是一个开源项目,由 Apache 软件基金会维护,主要用于处理 Microsoft Office 格式的文件,如 Word(.doc/.docx)、Excel(.xls/.xlsx)、PowerPoint(.ppt/.pptx)等。这个框架使得 Java 开发者能够方便...

    Apache POI库jar文件

    Apache POI库是一个开源的Java库,可以帮助开发人员处理Microsoft Office格式的文档,例如Word文档、Excel电子表格和PowerPoint演示文稿等。以下是Apache POI库的详细介绍: 支持多种Office格式:Apache POI库支持...

    org.apache.poi Jar包下载

    这个"org.apache.poi Jar包"是Apache POI项目的Java库,用于在Java应用程序中读写这些文件格式。它提供了API,使得开发者可以轻松地创建、修改和操作Microsoft Office文档。 1. **Apache POI的基本概念**: - POI ...

Global site tag (gtag.js) - Google Analytics