- 浏览: 648515 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ssxszt:
...
解决PopUpManager弹出窗口RangeError: Error #2006: 提供的索引超出范围 -
lijiajia:
木子佳 写道楼主,想要源码学习,谢谢。kajiamuzi@16 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
juedi:
很好,是我需要的东东
Flex异常处理设计 -
暖暖fh:
大神,我想要源码,这个功能我折腾了好我啊 fuhan247@1 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
chenzi:
一样的代码,两台机器上面,完全不同的报错。。Flex实现htt ...
Flex使用Https协议
7. 设置单元格的边框
public void createBorder() throws Exception { Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow(1); // Create a cell and put a value in it. Cell cell = row.createCell(1); cell.setCellValue(4); // Style the cell with borders all around. CellStyle style = wb.createCellStyle(); style.setBorderBottom(CellStyle.BORDER_THIN); style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); style.setBorderLeft(CellStyle.BORDER_THIN); style.setLeftBorderColor(IndexedColors.GREEN.getIndex()); style.setBorderRight(CellStyle.BORDER_THIN); style.setRightBorderColor(IndexedColors.BLUE.getIndex()); style.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); style.setTopBorderColor(IndexedColors.BLACK.getIndex()); cell.setCellStyle(style); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); }
8. 迭代行和单元格
有时需要迭代一个页中的所有行,或者一个行中所有的单元格。一个简单的方法是循环。
幸运的是,poi知道我们所需。页可以通过sheet.rowIterator()迭代出所有的行,行可以通过row.cellIterator()迭代出所有的单元格。总之,Sheet和Row实现了java.lang.Iterable,如果你用的是jdk1.5以上的版本,你可以使用java高级for循环。
Sheet sheet = wb.getSheetAt(0); for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) { Row row = (Row)rit.next(); for (Iterator cit = row.cellIterator(); cit.hasNext(); ) { Cell cell = (Cell)cit.next(); // Do something here } } HSSFSheet sheet = wb.getSheetAt(0); for (Iterator<HSSFRow> rit = (Iterator<HSSFRow>)sheet.rowIterator(); rit.hasNext(); ) { HSSFRow row = rit.next(); for (Iterator<HSSFCell> cit = (Iterator<HSSFCell>)row.cellIterator(); cit.hasNext(); ) { HSSFCell cell = cit.next(); // Do something here } }
java高级for循环迭代行和单元格
Sheet sheet = wb.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { // Do something here } }
9. 得到单元格的内容
想得到单元格的内容之前,首先要知道单元格的类型,因此你要先判断单元格的类型之后选择合适的方法得到单元格的值。下面的代码,循环得到一个Sheet所有的单元格。
public void getCellValue() throws Exception { InputStream inp = new FileInputStream("D:\\hjn.xls"); HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp)); Sheet sheet1 = wb.getSheetAt(0); for (Row row : sheet1) { for (Cell cell : row) { CellReference cellRef = new CellReference(row.getRowNum(), cell .getColumnIndex()); System.out.print(cellRef.formatAsString()); System.out.print(" - "); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getRichStringCellValue() .getString()); break; case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue()); } else { System.out.println(cell.getNumericCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println(); } } } }
10. 文本提取
poi的ExcelExtractor可以抽取Cell中的值。org.apache.poi.ss.extractor 为抽取类的接口,ExcelExtractor, XSSFExcelExtractor实现了该接口。
InputStream inp = new FileInputStream("D:\\hjn.xls"); HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp)); ExcelExtractor extractor = new ExcelExtractor(wb); extractor.setFormulasNotResults(true); extractor.setIncludeSheetNames(true); String text = extractor.getText(); System.out.println(text);
11. 填充和颜色
public void fillAndColors() throws Exception{ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow((short) 1); // Aqua background CellStyle style = wb.createCellStyle(); style.setFillBackgroundColor(IndexedColors.BLUE.getIndex()); style.setFillPattern(CellStyle.ALIGN_FILL); Cell cell = row.createCell((short) 1); cell.setCellValue("X"); cell.setCellStyle(style); // Orange "foreground", foreground being the fill foreground not the font color. style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); style.setFillPattern(CellStyle.SOLID_FOREGROUND); cell = row.createCell((short) 2); cell.setCellValue("X"); cell.setCellStyle(style); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); }
12. 合并单元格
public void mergingCell() throws Exception{ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); Row row = sheet.createRow((short) 1); Cell cell = row.createCell((short) 1); cell.setCellValue("This is a test of merging"); sheet.addMergedRegion(new CellRangeAddress(1, // first row (0-based) 4, // last row (0-based) 1, // first column (0-based) 6 // last column (0-based) )); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); }
13. 设置字体
public void createFont() throws Exception{ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow(1); // Create a new font and alter it. Font font = wb.createFont(); font.setFontHeightInPoints((short)24); font.setFontName("Courier New"); font.setItalic(true); font.setStrikeout(true); // Fonts are set into a style so create a new one to use. CellStyle style = wb.createCellStyle(); style.setFont(font); // Create a cell and put a value in it. Cell cell = row.createCell(1); cell.setCellValue("This is a test of fonts"); cell.setCellStyle(style); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); }
注意:一个工作薄最多只能创建32767 个不同的字体样式,因此你应该重用字体样式而不应该每创建一个单元格就创建一个单元格字体样式。
错误写法:
for (int i = 0; i < 10000; i++) { Row row = sheet.createRow(i); Cell cell = row.createCell((short) 0); CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBoldweight(Font.BOLDWEIGHT_BOLD); style.setFont(font); cell.setCellStyle(style); }
正确写法:
CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBoldweight(Font.BOLDWEIGHT_BOLD); style.setFont(font); for (int i = 0; i < 10000; i++) { Row row = sheet.createRow(i); Cell cell = row.createCell((short) 0); cell.setCellStyle(style); }
POI学习笔记三将会继续讲解poi更实用的知识点。
发表评论
-
转 接口滥用问题
2011-08-22 16:57 1466我们知道,大家提倡面向接口编程,但凡事都有个度,当滥用,那么面 ... -
Jakarta Commons Cookbook学习笔记(一)
2010-08-14 22:20 2061开发中需要写很多工具类,大多数是关于字符串、文件 ... -
Effective java 读书笔记第八章(1)
2010-05-13 19:30 1404将局部变量的作用域最小化 较早的程序设计语言(如 ... -
Junit4学习笔记一
2010-03-18 12:31 1569Junit4是Junit框架 ... -
打印JdbcTemplate执行sql
2010-03-09 22:55 11626有关log4j的基础知识请参考log4j详解与实战,本文主要讲 ... -
POI学习笔记(四)
2010-01-03 12:07 1650大时代 -
POI学习笔记(三)
2010-01-02 22:10 386614. 自定义颜色 HSSF: HSSF ... -
POI学习笔记(一)
2009-12-29 12:53 7114项目中经常要解析和生成Excel文件,最常用的开源 ... -
XStream学习笔记四
2009-12-05 11:30 2614XStream生成xml文件和从xml文件中得到对象 pub ... -
XStream学习笔记三
2009-12-05 10:52 3142本篇主要讲解XStream的Converter 简单的Co ... -
XStream学习笔记二
2009-12-03 13:47 1721以下面的xml文件展开讨论。 <blog author ... -
XStream学习笔记一
2009-12-03 10:12 2489XStream是一个实现java对象和xml相互转化的开源组件 ... -
取得系统的环境变量
2009-11-30 15:59 1189System.getProperty("java.l ... -
BigDecimal 加法保留小数位数
2009-11-07 09:39 7472BigDecimal bg1=new BigDecimal( ...
相关推荐
POI学习笔记第二版更详细的POI学习笔记第二版更详细的
"POI学习笔记" POI(Apache POI)是一款流行的Java库,用于处理Microsoft Office文件格式,包括Excel、Word、PowerPoint等。POI提供了一个简洁和灵活的API,允许开发者轻松地读取、写入和操作Office文件。 POI的...
### POI学习笔记知识点解析 #### 一、POI简介 Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。POI提供了一套...
【Java学习笔记模版】 Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细...
1、包括网工第五版较全面的学习笔记(近4万字)、常用检测命令实践图、协议神图、常见编码图、网工简单的100条知识点 2、笔记目录如: 第一章 计算机基础知识 一、数据表示 (一) 定点和浮点和整数 二、逻辑计算机 ...
OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志
Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Excel、...通过不断实践和学习,你可以利用 POI 完成更多复杂的任务,如处理复杂的公式、应用丰富的格式和样式,以及实现高性能的文件操作。
Java学习笔记涵盖了大量的编程知识,主要集中在Java语言本身、数据库技术以及常见的企业级框架上。以下是对这些知识点的详细说明: 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,以其“一次编写,...
本学习笔记将深入探讨如何使用Apache POI库来实现Java对Excel的高效操作。 Apache POI是一个开源项目,提供了读写Microsoft Office格式文档的能力,包括Excel(.xlsx和.xls)。在Java中,我们可以借助POI库来创建、...
这份压缩包中的资源全面覆盖了Java的学习和应用,包括学习资料、面试题、DOS命令、设计模式以及Excel技巧和Java学习笔记。让我们逐一探讨这些知识点。 1. **Java学习资料**:Java学习资料通常包括基础语法、面向...
### 百度地图学习笔记知识点总结 #### 一、初始化地图与设置地图状态 在进行任何操作之前,首先需要初始化百度地图 SDK,并设置地图的基本状态。以下为几个关键步骤: 1. **初始化 SDK:** - 在使用百度地图 SDK...
本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...
【狂神说】笔记系列是全面且深入的IT学习资源,涵盖了从基础到进阶的各种技术领域。这个压缩包包含了JavaScript、JavaWeb、Java基础、MyBatis、MySQL、Redis、Spring、Spring Boot以及SpringMVC和Vue等多个关键知识...
【狂神说笔记_全.zip】是一个包含狂神说系列的Java学习资源的压缩包,主要涉及了Java基础、Spring Boot、JavaWeb、微服务、分布式系统、消息队列、并发编程、前端技术、数据库以及容器化技术等多个IT领域的核心知识...
本篇文章将深入探讨`jxl`包的学习和应用,通过一系列实例帮助你理解和掌握这个库的核心功能。 ### 1. 安装与引入 首先,你需要在项目中添加`jxl`库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: `...
Spring Boot 学习笔记 基础篇 #提升篇 15.SpringBoot之集成Shiro 16.SpringBoot之使用mybatis-generator自动生成代码 17.SpringBoot之使用lombok编码 18.SpringBoot之初始化数据 19.SpringBoot之使用POI开发Excel...
DeepMove是一种结合了深度学习与知识图谱的推荐系统,它利用用户的历史轨迹数据和知识图谱中的信息,构建深度学习模型来预测用户的未来移动行为,从而进行POI推荐。 标签“知识图谱”表明了整个项目的核心技术。...
【技术笔记(第二部分整理)】 本笔记涵盖了广泛的IT技术领域,主要集中在Web开发和Java相关的框架与工具。以下是对各个知识点的详细说明: **Web前端** **HTML5** HTML5是HTML的最新版本,引入了许多新特性以...
【标题】"黑马乐优商城19天全套视频加配套笔记"揭示了这是一套针对乐优商城项目的全面教学资源,由知名IT教育机构黑马程序员提供,并且是2018年的最新版本。课程可能涵盖了从项目启动到完成的全过程,总计19天的学习...