`
234390216
  • 浏览: 10232458 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462604
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775477
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398318
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395004
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679965
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530859
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183884
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467833
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151373
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68130
社区版块
存档分类
最新评论

poi对excel的基本读写操作

    博客分类:
  • poi
阅读更多

最近简单的弄了下poi对excel的应用,为方便自己以后的使用就把一些基本操作记录下来,其他更复杂的操作可以等以后有需求的时候再来深入了解一番!

 

写操作:

/**
 * 
 * 层次结构就是workbook-->Sheet-->Row-->Cell
 * 只要按照这种层次结构操作就不会有什么大的问题
 * @author Administrator
 *
 */
public class Test1 {

	public static void main(String args[]) throws IOException {
		
		//HSSFWorkbook对应的是2003
		//XSSFWorkbook对应的是2007
		//对于03和07它们的操作都是差不多的,只是在需要用07的时候把相应的HSSF前缀改成XSSF前缀就可以了
		//第一步建一个工作簿,即workbook
		Workbook workbook = new HSSFWorkbook();
		//第二步建一个工作表单,急sheet
		Sheet sheet = workbook.createSheet("mysheet1");
		for (int i=0;i<5;i++) {
			//有了表单以后就是行Row了,
			Row row = sheet.createRow(i);
			for (int j=0;j<5;j++) {
				//有了row以后就是row上的一个个小的单元格了
				Cell cell = row.createCell(j);
				//给单元格添加内容
				cell.setCellValue("row"+(i+1)+",column"+(j+1));
			}
		}
		//建一个用于存放新建的excel的文件输出流
		OutputStream os = new FileOutputStream("file/test1.xls");
		//把形成的workbook写到一个输出流里面
		workbook.write(os);
		os.close();
	}
	
}

 

读操作:

public class Test4 {

	public static void main(String args[]) throws IOException {
		InputStream is = new FileInputStream("file/test1.xls");
		Workbook wb = new HSSFWorkbook(is);
		Sheet sheet = wb.getSheetAt(0);
		// 因为Row,Cell,Sheet都继承了java.lang.Iterator接口,所以可以用下面的方法来进行遍历
		for (Row row : sheet) {
			for (Cell cell : row) {
				int cellType = cell.getCellType();
				switch (cellType) {
				//在取数据的时候类型一定要取对,否则将抛出异常
				case Cell.CELL_TYPE_STRING:
					String str = cell.getRichStringCellValue().getString();
					System.out.println(str);// 对取得的数据的简单处理;
					break;
				case Cell.CELL_TYPE_BLANK:
					if (DateUtil.isCellDateFormatted(cell)) {
						System.out.println(cell.getDateCellValue());
					} else {
						System.out.println(cell.getNumericCellValue());
					}
					break;
				case Cell.CELL_TYPE_FORMULA:
					System.out.println(cell.getCellFormula());
					break;
				case Cell.CELL_TYPE_BOOLEAN:
					System.out.println(cell.getBooleanCellValue());
					break;
				default:
					System.out.println("---------------------");
					break;
				}
			}
		}
		//当然还可以这样来遍历
		//row是从1开始的,cell是从头0开始的,但是在创建的时候它们都是0-based;
		for (int i=0;i<sheet.getLastRowNum()+1;i++) {
			Row row = sheet.getRow(i);
			if (row==null)
				continue;
			for (int j=0;j<row.getLastCellNum();j++) {
				Cell cell = row.getCell(j);
				if (cell==null)
					continue;
				//在取数据的时候数据类型一定要取对,否则将抛出异常,like NumberFormatException
				System.out.println(cell.getStringCellValue());
			}
		}
		is.close();
	}

}

 

合并单元格:

public static void main(String args[]) throws IOException {
		Workbook wb = new HSSFWorkbook();
		Sheet sheet = wb.createSheet("sheet1");
		Row row = sheet.createRow(1);
		Cell cell = row.createCell(1);
		cell.setCellValue("a test of merge!");
		//执行合并操作的语句
		sheet.addMergedRegion(new CellRangeAddress(
				1,// 开始行
				1,// 结束行
				1,// 开始列
				3// 结束列
		));
		OutputStream os = new FileOutputStream("file/test3.xls");
		wb.write(os);
		os.close();
	}

 

 

换行:

public static void main(String args[]) throws IOException {
		Workbook wb = new HSSFWorkbook();
		Sheet sheet = wb.createSheet();
		Row row = sheet.createRow(6);
		sheet.autoSizeColumn(2);
		for (int i=0;i<5;i++) {
			Cell cell = row.createCell(i+2);
			CellStyle style = wb.createCellStyle();
			//to set cell newLine should set its wrap true
			style.setWrapText(true);
			//利用\n来实现换行操作,只有在Cell设置为setWrapText(true)的时候才能实现人为的换行
			cell.setCellValue("just use \n to wrap in a cell!");
			cell.setCellStyle(style);
		}
		OutputStream os = new FileOutputStream("file/test6_newLine.xls");
		wb.write(os);
		os.close();
		System.out.println("----------------------------");
	}

 

 

画图:

//drawing shapes
		/*
		 * To create a shape you have to go through the following steps: 

			1.Create the patriarch.
			2.Create an anchor to position the shape on the sheet.
			3.Ask the patriarch to create the shape.
			4.Set the shape type (line, oval, rectangle etc...)
			5.Set any other style details converning the shape. (eg: line thickness, etc...)

		 */
		HSSFPatriarch partriarch = (HSSFPatriarch) sheet5.createDrawingPatriarch();
		HSSFSimpleShape shape = partriarch.createSimpleShape(new HSSFClientAnchor(0,0,0,0,(short)3,3,(short)5,5));
		shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);
		//shape可以设置很多的属性
		shape.setFillColor(255,200,200);
		shape.setLineStyle(HSSFSimpleShape.LINESTYLE_DASHGEL);
		//Text boxes are created using a different call: 

 

 

1
1
分享到:
评论
1 楼 eppen 2012-08-29  
//drawing shapes

这块画椭圆的时候,如果给设置成没有填充色?

相关推荐

    poi读写excel

    poi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excel

    java利用poi对Excel进行读写操作支持多sheet格式

    对于标题中提到的"java利用poi对Excel进行读写操作支持多sheet格式",这涉及到以下几个关键知识点: 1. **创建Excel工作簿**:使用`WorkbookFactory.create()`方法,可以创建一个新的工作簿对象,无论是...

    poi读写excel+poi总结

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel...以上就是关于使用Apache POI进行Excel读写的基本介绍和总结。实际应用中,开发者可以根据需求扩展这些基础操作,实现更复杂的功能。

    poi3.1读写excel,wps et

    WPS的ET文件本质上也是基于Excel的,所以你可以用类似的POI API来读写。不过,由于WPS的兼容性问题,可能需要处理一些特殊格式或者异常。如果POI在处理某些特定功能时有困难,可能需要借助其他工具或更新到更高版本...

    POI读写excel文件+poi简单文档

    在这个“POI读写excel文件+poi简单文档”中,我们将深入探讨如何利用Apache POI进行Excel文件的读写操作。 首先,我们需要了解POI的主要组件:HSSF(Horrible Spreadsheet Format)用于处理旧版的BIFF格式(.xls)...

    基于POI的Excel操作Java类

    为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 2.获取及更新Excel文件内容 3.创建、复制Sheet 4.设置Sheet名称 ... ...

    java用poi读写excel表

    本文将详细介绍如何使用POI库在Java中进行Excel的读写操作,以及一个在Eclipse环境中运行的实例。 首先,我们需要了解Apache POI的基本概念。POI是Apache软件基金会的一个开源项目,它提供了Java API来处理...

    apache POI文件读写excel

    总结,Apache POI是Java开发中处理Excel文件的强大工具,涵盖了从基本的读写操作到复杂的格式设置和公式计算。通过熟练掌握Apache POI,开发者可以构建灵活且高效的Excel处理程序,满足各种业务需求。

    POI操作Excel的封装

    在这个场景中,"POI操作Excel的封装"指的是对POI API进行的高级抽象和简化,以便于开发人员更方便地处理Excel文件。通过反射和约定,可以创建一个易于使用的API,隐藏底层复杂的POI细节。 反射是Java编程语言中的一...

    POI生成Excel POI操作Excel POI读取Excel POI类库

    在这个场景中,我们关注的是如何使用POI来创建、读取和操作Excel文档。在Web项目中,这种功能通常用于数据导入导出,报表生成,或者任何需要与用户交换表格数据的场景。 **POI生成Excel** 生成Excel文件主要涉及...

    ExcelDemo_Excel导出_下载_POI读excel_JXL读写excel_java读写excel_列宽_读取合并或拆分单元格内容

    总的来说,Java开发者可以通过Apache POI和JExcelAPI轻松地读写Excel文件,进行各种操作,如设置列宽、处理合并或拆分的单元格。理解并熟练掌握这些库,将极大地提升你在处理Excel数据时的效率。在实际项目中,根据...

    java 通过poi操作excel jar包

    描述中提到了"poi_3.17.jar poi_3.15.jar",这两个版本都是Apache POI库的一部分,它们提供了对Excel文件的读写支持。其中,poi_3.17.jar是较新的版本,可能包含了更多优化和错误修复。同时,还提到了"jxl.jar",这...

    java poi 读写excel

    这篇博客文章可能详细介绍了如何使用Java POI进行Excel的读写操作。 在Java开发中,使用POI库可以实现以下功能: 1. **创建Excel工作簿**:通过`WorkbookFactory.create()`方法可以创建一个新的Excel工作簿对象,...

    poi3.9读写EXCEL

    在版本3.9中,POI对Excel的支持已经相当成熟,可以处理大量复杂的数据操作。 一、POI 3.9与Excel文件格式 1. XLSX格式:自2007年以后,Microsoft Excel引入了新的文件格式XLSX,基于OOXML标准。与旧的二进制XLS...

    Java实现Excel读写的poi 5.2.1版本jar

    在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿以及处理复杂的公式和样式。 `poi-ooxml-lite-5.2.1.jar`:这个轻量级的JAR文件包含了处理OOXML(Office Open XML)...

    poi操作Excel表格基本操作

    在Java环境中,如果你需要对Excel进行读写操作,Apache POI库提供了强大的功能。本文将深入探讨如何使用POI库中的XSSFWorkbook类进行Excel表格的基本操作。 一、XSSFWorkbook简介 XSSFWorkbook是Apache POI库中处理...

    JAVA POI 4.0 对Excel读写整理LIB以及样例工程

    JAVA POI 4.0 是一个强大的库,用于在Java应用程序中处理Microsoft Office格式的文件,特别是Excel。这个库允许开发者以编程方式创建、修改和读取Excel文档,极大地拓展了Java在电子表格处理上的能力。POI 4.0是该库...

    poi操作excel的Demo

    这个"poi操作excel的Demo"很可能是提供了一个使用Apache POI库来读取、写入或修改Excel文件的示例代码。下面将详细介绍Apache POI在处理Excel时的一些关键知识点。 1. **Apache POI概述**: Apache POI 是Java平台...

    java poi 操作Excel

    在Java世界中,如果你想对Excel进行读写操作,POI库是不可或缺的工具。下面将详细介绍如何使用Java POI来操作Excel以及相关的知识点。 1. **基本概念** - HSSF(Horrible Spreadsheet Format):这是POI库处理...

Global site tag (gtag.js) - Google Analytics