`

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; ...

    apache.poi所需要的jar包集合

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

    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_3.8 execl/world/viso文件导出支持包

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

    操作excel表格需要的jar包集合

    操作excel表格需要的jar包 1、poi-ooxml-3.8-20120326.jar包含org.apache.poi.xssf.usermodel.XSSFWorkbook 2、poi-3.8-20120326.jar里包含下面四个 org.apache.poi.ss.usermodel.Cell; org.apache.poi.ss.usermodel...

    ExcelExportUtils.java

    import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache....

    java用org_apache_poi包操作excel

    java用org_apache_poi包操作excel

    Apache POI :Java对Office操作.rar

    包括Apache POI源代码和Apache_POI_API.chm使用教程 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 结构: HSSF - 提供读写Microsoft Excel...

    java excel操作 poi-3.17 可用于jdk1.70

    附件是java poi 3.17的lib库及其依赖库,全部下载引用后,可以进行excel的读写操作,无需引用其他lib库。poi-3.17适用于jdk1.7。 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft ...

    poi3.17jar包下载

    poi3.17jar包下载,支持excel2003,excel2007,亲测可用。poi3.17jar包下载,支持excel2003,excel2007,亲测可用。poi3.17jar包下载,支持excel2003,excel2007,亲测可用。poi3.17jar包下载,支持excel2003,excel2007...

    java实现poi 在线预览,excel,word直接在页面显示,附带文件上传,多文件上传

    所需poi的jar包: commons-collections4-4.1.jar poi-3.17.jar poi-examples-3.17.jar poi-excelant-3.17.jar poi-ooxml-3.17.jar poi-ooxml-schemas-3.17.jar poi-scratchpad-3.17.jar xmlbeans-2.6.0.jar maven...

    Anroid开发所需poi_jar包

    开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI...

    Java-POI-jar包

    org.apache.poi包,java操作word.excel.ppt!

    POI 导入Excel 提醒LeftoverDataException求帮助

    POI 导入Excel 提醒LeftoverDataException求帮助

    用poi创建Excel文件

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

    Apache POI Excel操作

    Apache POI Excel操作 需要的文档,.介绍,相关jar包,maven中的配置等,比较全面

    poi2.rar_Apache POI_PO_apache poi2_apache poi2 API_poi.apache.c

    Java操作excel文件的包Poi,是Apache组织的,这是帮助文档,非常有用的东西。

    poi:适合解析小的excel文件,文件稍微大一点就出现OOM。

    &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;3.15 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml &lt;version&gt;3.15 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml-schemas &lt;version&gt;3.15 ...

    apache POI.rar

    这个压缩包里有apache poi技术所使用的的jar包 包括:commons-beanutils-1.8.0.jar,commons-collections-3.2.jar,commons-io-2.2.jar,org.apache.servicemix.bundles.dom4j-2.1.1_1.jar,poi-3.9.jar,poi-ooxml-...

    word源码java-poi-helper:apachepoi辅助工具

    org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * * 测试 * * @...

Global site tag (gtag.js) - Google Analytics