最近简单的弄了下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:
相关推荐
poi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excelpoi读写excel
对于标题中提到的"java利用poi对Excel进行读写操作支持多sheet格式",这涉及到以下几个关键知识点: 1. **创建Excel工作簿**:使用`WorkbookFactory.create()`方法,可以创建一个新的工作簿对象,无论是...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel...以上就是关于使用Apache POI进行Excel读写的基本介绍和总结。实际应用中,开发者可以根据需求扩展这些基础操作,实现更复杂的功能。
WPS的ET文件本质上也是基于Excel的,所以你可以用类似的POI API来读写。不过,由于WPS的兼容性问题,可能需要处理一些特殊格式或者异常。如果POI在处理某些特定功能时有困难,可能需要借助其他工具或更新到更高版本...
在这个“POI读写excel文件+poi简单文档”中,我们将深入探讨如何利用Apache POI进行Excel文件的读写操作。 首先,我们需要了解POI的主要组件:HSSF(Horrible Spreadsheet Format)用于处理旧版的BIFF格式(.xls)...
为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 2.获取及更新Excel文件内容 3.创建、复制Sheet 4.设置Sheet名称 ... ...
本文将详细介绍如何使用POI库在Java中进行Excel的读写操作,以及一个在Eclipse环境中运行的实例。 首先,我们需要了解Apache POI的基本概念。POI是Apache软件基金会的一个开源项目,它提供了Java API来处理...
总结,Apache POI是Java开发中处理Excel文件的强大工具,涵盖了从基本的读写操作到复杂的格式设置和公式计算。通过熟练掌握Apache POI,开发者可以构建灵活且高效的Excel处理程序,满足各种业务需求。
在这个场景中,"POI操作Excel的封装"指的是对POI API进行的高级抽象和简化,以便于开发人员更方便地处理Excel文件。通过反射和约定,可以创建一个易于使用的API,隐藏底层复杂的POI细节。 反射是Java编程语言中的一...
在这个场景中,我们关注的是如何使用POI来创建、读取和操作Excel文档。在Web项目中,这种功能通常用于数据导入导出,报表生成,或者任何需要与用户交换表格数据的场景。 **POI生成Excel** 生成Excel文件主要涉及...
总的来说,Java开发者可以通过Apache POI和JExcelAPI轻松地读写Excel文件,进行各种操作,如设置列宽、处理合并或拆分的单元格。理解并熟练掌握这些库,将极大地提升你在处理Excel数据时的效率。在实际项目中,根据...
描述中提到了"poi_3.17.jar poi_3.15.jar",这两个版本都是Apache POI库的一部分,它们提供了对Excel文件的读写支持。其中,poi_3.17.jar是较新的版本,可能包含了更多优化和错误修复。同时,还提到了"jxl.jar",这...
这篇博客文章可能详细介绍了如何使用Java POI进行Excel的读写操作。 在Java开发中,使用POI库可以实现以下功能: 1. **创建Excel工作簿**:通过`WorkbookFactory.create()`方法可以创建一个新的Excel工作簿对象,...
在版本3.9中,POI对Excel的支持已经相当成熟,可以处理大量复杂的数据操作。 一、POI 3.9与Excel文件格式 1. XLSX格式:自2007年以后,Microsoft Excel引入了新的文件格式XLSX,基于OOXML标准。与旧的二进制XLS...
在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿以及处理复杂的公式和样式。 `poi-ooxml-lite-5.2.1.jar`:这个轻量级的JAR文件包含了处理OOXML(Office Open XML)...
在Java环境中,如果你需要对Excel进行读写操作,Apache POI库提供了强大的功能。本文将深入探讨如何使用POI库中的XSSFWorkbook类进行Excel表格的基本操作。 一、XSSFWorkbook简介 XSSFWorkbook是Apache POI库中处理...
JAVA POI 4.0 是一个强大的库,用于在Java应用程序中处理Microsoft Office格式的文件,特别是Excel。这个库允许开发者以编程方式创建、修改和读取Excel文档,极大地拓展了Java在电子表格处理上的能力。POI 4.0是该库...
这个"poi操作excel的Demo"很可能是提供了一个使用Apache POI库来读取、写入或修改Excel文件的示例代码。下面将详细介绍Apache POI在处理Excel时的一些关键知识点。 1. **Apache POI概述**: Apache POI 是Java平台...
在Java世界中,如果你想对Excel进行读写操作,POI库是不可或缺的工具。下面将详细介绍如何使用Java POI来操作Excel以及相关的知识点。 1. **基本概念** - HSSF(Horrible Spreadsheet Format):这是POI库处理...