- 浏览: 685926 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (254)
- java分布式应用架构 (22)
- SSH框架整合 (6)
- java web 学习笔记 (49)
- java 学习笔记 (56)
- struts 2 学习 (6)
- Hibernate学习 (10)
- spring 学习 (2)
- 客户端编程(javascript) (4)
- IDE使用 (13)
- 生命 人生 (6)
- 系统维护 (3)
- 技术篇 (10)
- MySql (2)
- J2ME (1)
- java网络编程 (4)
- 数据库 (5)
- C/C++ (8)
- Oracle (7)
- 软件测试 (0)
- 软件的安装和部署 (0)
- Java快讯 (1)
- swt (1)
- Flex (1)
- 软件工程 (1)
- PostgreSQL (1)
- sql server2000 (2)
- 嵌入式数据库sqlite (5)
- J2EE (1)
- XML (1)
- ibatis3(MyBatis) (6)
- Linux&Unix (1)
- velocity (1)
- 回报社会 (4)
- 软件项目管理 (3)
- android研究 (3)
- C# (2)
- Objective-C (1)
- 音乐 (0)
- webx (1)
- JMS (1)
- maven软件项目管理 (1)
- 分布式服务 (0)
- 云平台 (0)
- 分布式存储 (1)
- 分布式系统架构 (0)
- 移动互联网 (1)
- ZooKeeper (1)
最新评论
-
liyys:
楼主,可不可以发这个项目的源码工程出来分享一下,少了几个类。楼 ...
仿照Hibernate实现一个SQLite的ORM框架 -
liyys:
少了一些类的源码没有粘贴出来
仿照Hibernate实现一个SQLite的ORM框架 -
honglei0412:
我使用的是这种方式获取db文件的目录但是 URL p = Fi ...
使用sqlite注意事项 -
honglei0412:
大侠 能不能说明下DbFile您是怎么做的吗?
使用sqlite注意事项 -
ahack:
刚写完mapping才发现早就有人写好了。仔细一看还都是针对的 ...
仿照Hibernate实现一个SQLite的ORM框架
POI官方网址:http://poi.apache.org/
POI 的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Excel XLS,PowerPoint PPT,Word DOC,Outlook MSG,Excel XLSX等,下面就简单讲下poi处理excel的一些内容。
下面的jar包来源于当前最新的poi 3.6版本。
1.poi来生成excel
package com.test.poi;
import java.io.FileOutputStream;
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.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
public class WriteExcel {
public static void main(String[] args) throws Exception {
// 创建Excel的工作书册 Workbook,对应到一个excel文档
HSSFWorkbook wb = new HSSFWorkbook();
// 创建Excel的工作sheet,对应到一个excel文档的tab
HSSFSheet sheet = wb.createSheet("sheet1");
// 设置excel每列宽度
sheet.setColumnWidth(0, 4000);
sheet.setColumnWidth(1, 3500);
// 创建字体样式
HSSFFont font = wb.createFont();
font.setFontName("Verdana");
font.setBoldweight((short) 100);
font.setFontHeight((short) 300);
font.setColor(HSSFColor.BLUE.index);
// 创建单元格样式
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// 设置边框
style.setBottomBorderColor(HSSFColor.RED.index);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setFont(font);// 设置字体
// 创建Excel的sheet的一行
HSSFRow row = sheet.createRow(0);
row.setHeight((short) 500);// 设定行的高度
// 创建一个Excel的单元格
HSSFCell cell = row.createCell(0);
// 合并单元格(startRow,endRow,startColumn,endColumn)
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
// 给Excel的单元格设置样式和赋值
cell.setCellStyle(style);
cell.setCellValue("hello world");
// 设置单元格内容格式
HSSFCellStyle style1 = wb.createCellStyle();
style1.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm:ss"));
style1.setWrapText(true);// 自动换行
row = sheet.createRow(1);
// 设置单元格的样式格式
cell = row.createCell(0);
cell.setCellStyle(style1);
cell.setCellValue(new Date());
// 创建超链接
HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
link.setAddress("http://www.baidu.com");
cell = row.createCell(1);
cell.setCellValue("百度");
cell.setHyperlink(link);// 设定单元格的链接
FileOutputStream os = new FileOutputStream("e:\\workbook.xls");
wb.write(os);
os.close();
}
}
2.poi读取excel
package com.test.poi;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
public class ReadExcel {
public static void main(String[] args) throws Exception {
HSSFWorkbook wb = null;
POIFSFileSystem fs = null;
try {
fs = new POIFSFileSystem(new FileInputStream("e:\\workbook.xls"));
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell(0);
String msg = cell.getStringCellValue();
System.out.println(msg);
}
public static void method2() throws Exception {
InputStream is = new FileInputStream("e:\\workbook.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));
ExcelExtractor extractor = new ExcelExtractor(wb);
extractor.setIncludeSheetNames(false);
extractor.setFormulasNotResults(false);
extractor.setIncludeCellComments(true);
String text = extractor.getText();
System.out.println(text);
}
public static void method3() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("e:\\workbook.xls"));
HSSFSheet sheet = wb.getSheetAt(0);
for (Iterator<Row> iter = (Iterator<Row>) sheet.rowIterator(); iter.hasNext();) {
Row row = iter.next();
for (Iterator<Cell> iter2 = (Iterator<Cell>) row.cellIterator(); iter2.hasNext();) {
Cell cell = iter2.next();
String content = cell.getStringCellValue();// 除非是sring类型,否则这样迭代读取会有错误
System.out.println(content);
}
}
}
}
注:HSSFWorkbook,XSSFWorkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。
在实际应用中,要对excel文件进行判断,该用哪个workbook来对其进行解析处理,而且,通常把这些方法都做了相应封装,使其更面向对象,上例只是main方法的简单示例而已,仅供参考!
POI 的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Excel XLS,PowerPoint PPT,Word DOC,Outlook MSG,Excel XLSX等,下面就简单讲下poi处理excel的一些内容。
下面的jar包来源于当前最新的poi 3.6版本。
1.poi来生成excel
package com.test.poi;
import java.io.FileOutputStream;
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.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
public class WriteExcel {
public static void main(String[] args) throws Exception {
// 创建Excel的工作书册 Workbook,对应到一个excel文档
HSSFWorkbook wb = new HSSFWorkbook();
// 创建Excel的工作sheet,对应到一个excel文档的tab
HSSFSheet sheet = wb.createSheet("sheet1");
// 设置excel每列宽度
sheet.setColumnWidth(0, 4000);
sheet.setColumnWidth(1, 3500);
// 创建字体样式
HSSFFont font = wb.createFont();
font.setFontName("Verdana");
font.setBoldweight((short) 100);
font.setFontHeight((short) 300);
font.setColor(HSSFColor.BLUE.index);
// 创建单元格样式
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// 设置边框
style.setBottomBorderColor(HSSFColor.RED.index);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setFont(font);// 设置字体
// 创建Excel的sheet的一行
HSSFRow row = sheet.createRow(0);
row.setHeight((short) 500);// 设定行的高度
// 创建一个Excel的单元格
HSSFCell cell = row.createCell(0);
// 合并单元格(startRow,endRow,startColumn,endColumn)
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
// 给Excel的单元格设置样式和赋值
cell.setCellStyle(style);
cell.setCellValue("hello world");
// 设置单元格内容格式
HSSFCellStyle style1 = wb.createCellStyle();
style1.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm:ss"));
style1.setWrapText(true);// 自动换行
row = sheet.createRow(1);
// 设置单元格的样式格式
cell = row.createCell(0);
cell.setCellStyle(style1);
cell.setCellValue(new Date());
// 创建超链接
HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
link.setAddress("http://www.baidu.com");
cell = row.createCell(1);
cell.setCellValue("百度");
cell.setHyperlink(link);// 设定单元格的链接
FileOutputStream os = new FileOutputStream("e:\\workbook.xls");
wb.write(os);
os.close();
}
}
2.poi读取excel
package com.test.poi;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
public class ReadExcel {
public static void main(String[] args) throws Exception {
HSSFWorkbook wb = null;
POIFSFileSystem fs = null;
try {
fs = new POIFSFileSystem(new FileInputStream("e:\\workbook.xls"));
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell(0);
String msg = cell.getStringCellValue();
System.out.println(msg);
}
public static void method2() throws Exception {
InputStream is = new FileInputStream("e:\\workbook.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));
ExcelExtractor extractor = new ExcelExtractor(wb);
extractor.setIncludeSheetNames(false);
extractor.setFormulasNotResults(false);
extractor.setIncludeCellComments(true);
String text = extractor.getText();
System.out.println(text);
}
public static void method3() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("e:\\workbook.xls"));
HSSFSheet sheet = wb.getSheetAt(0);
for (Iterator<Row> iter = (Iterator<Row>) sheet.rowIterator(); iter.hasNext();) {
Row row = iter.next();
for (Iterator<Cell> iter2 = (Iterator<Cell>) row.cellIterator(); iter2.hasNext();) {
Cell cell = iter2.next();
String content = cell.getStringCellValue();// 除非是sring类型,否则这样迭代读取会有错误
System.out.println(content);
}
}
}
}
注:HSSFWorkbook,XSSFWorkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。
在实际应用中,要对excel文件进行判断,该用哪个workbook来对其进行解析处理,而且,通常把这些方法都做了相应封装,使其更面向对象,上例只是main方法的简单示例而已,仅供参考!
发表评论
-
Java编程中“为了性能”尽量要做到的一些地方
2012-09-14 10:33 12241. 尽量在合适的场合使 ... -
Java 5.0多线程编程
2012-08-17 19:16 1068概述 1:三个新加的多线程包 2:C ... -
Thread.setDaemon设置说明
2012-06-28 18:00 1156Thread.setDaemon的用法,经过学习以后了解: ... -
JVM运行时数据区
2012-03-07 13:15 1007JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些 ... -
使用ibatis防止sql注入
2011-12-19 19:59 4662为了防止SQL注入,iBatis模糊查询时也要避免使用$$来进 ... -
java的引用探讨
2011-12-18 16:03 1128Reference 是一个抽象类,而 SoftReferenc ... -
ClassLoader
2011-11-04 15:11 1198package org.liufei.neta.lib; ... -
仿照Hibernate实现一个SQLite的ORM框架
2011-09-30 20:06 3198那么先来看看使用 实体对象 package test; ... -
java压缩文件
2011-09-20 11:09 1296package org.liufei.net.util; ... -
获取客户机IP地址
2011-09-07 15:04 1036package org.liufei.jweb; imp ... -
Java读取本地机器MAC地址
2011-09-07 15:01 1305package org.liufei.jweb; imp ... -
获取IP地址
2011-09-07 13:41 2426public String getIpAddrByReques ... -
用CSS来美化Java桌面--Javacss
2011-09-02 12:14 1336CSS可以用来修饰HTML网页。 但你有没有想过,使用CSS ... -
java管理windows进程
2011-08-29 17:34 1782package org.zzuli.xmsb; /** ... -
java html工具
2011-08-29 17:26 1088package org.liufei.jweb.util; ... -
java将汉字转化为全拼
2011-08-29 17:24 1236package org.liufei.jweb.util; ... -
开源项目SVN源码地址
2011-08-22 16:20 3556多优秀的开源项目已经提供SVN源码签出了,无论是解疑还是学习, ... -
XML解析
2011-08-22 09:58 10261、DOM解析XML <?xml version=&q ... -
jdbc操作大观园
2011-08-09 17:22 1385最近公司使用jdbc和mybatis比较多,于是自己试着写了一 ... -
Windows XP系统总命令集合
2011-08-05 14:08 1078Windows XP系统总命令集合 winver----- ...
相关推荐
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开发的基础和核心技能。以下是对这些知识点的详细...
OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志
1、包括网工第五版较全面的学习笔记(近4万字)、常用检测命令实践图、协议神图、常见编码图、网工简单的100条知识点 2、笔记目录如: 第一章 计算机基础知识 一、数据表示 (一) 定点和浮点和整数 二、逻辑计算机 ...
Java学习笔记涵盖了大量的编程知识,主要集中在Java语言本身、数据库技术以及常见的企业级框架上。以下是对这些知识点的详细说明: 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,以其“一次编写,...
本学习笔记将深入探讨如何使用Apache POI库来实现Java对Excel的高效操作。 Apache POI是一个开源项目,提供了读写Microsoft Office格式文档的能力,包括Excel(.xlsx和.xls)。在Java中,我们可以借助POI库来创建、...
Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式的文件,如 Excel、...通过不断实践和学习,你可以利用 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等多个关键知识...
本篇文章将深入探讨`jxl`包的学习和应用,通过一系列实例帮助你理解和掌握这个库的核心功能。 ### 1. 安装与引入 首先,你需要在项目中添加`jxl`库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: `...
【狂神说笔记_全.zip】是一个包含狂神说系列的Java学习资源的压缩包,主要涉及了Java基础、Spring Boot、JavaWeb、微服务、分布式系统、消息队列、并发编程、前端技术、数据库以及容器化技术等多个IT领域的核心知识...
Spring Boot 学习笔记 基础篇 #提升篇 15.SpringBoot之集成Shiro 16.SpringBoot之使用mybatis-generator自动生成代码 17.SpringBoot之使用lombok编码 18.SpringBoot之初始化数据 19.SpringBoot之使用POI开发Excel...
DeepMove是一种结合了深度学习与知识图谱的推荐系统,它利用用户的历史轨迹数据和知识图谱中的信息,构建深度学习模型来预测用户的未来移动行为,从而进行POI推荐。 标签“知识图谱”表明了整个项目的核心技术。...
同时,JUnit(依赖于第25-28行)的引入意味着在学习过程中,测试驱动开发(TDD)也是一个重要的实践点,它能帮助确保代码的质量和可维护性。 自学前后端开发不仅仅局限于前端的HTML、CSS、JavaScript,还包括后端的...
【标题】"黑马乐优商城19天全套视频加配套笔记"揭示了这是一套针对乐优商城项目的全面教学资源,由知名IT教育机构黑马程序员提供,并且是2018年的最新版本。课程可能涵盖了从项目启动到完成的全过程,总计19天的学习...