使用poi读写excel文件
使用poi库测试了一下读取excel文件,效果不错,跟大家分享一下。
第一列是数值型,第二列是字符型,代码如下:
package poi; import java.io.FileInputStream;
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; /**
* 测试poi读取excel文件内容
* @author lihui
*
*/
public class TestRead { /**
* @param args
*/
public static void main(String[] args){ HSSFWorkbook wb = null;
POIFSFileSystem fs = null;
try {
//设置要读取的文件路径
fs = new POIFSFileSystem(new FileInputStream("d:\\book1.xls"));
//HSSFWorkbook相当于一个excel文件,HSSFWorkbook是解析excel2007之前的版本(xls)
//之后版本使用XSSFWorkbook(xlsx)
wb = new HSSFWorkbook(fs);
//获得sheet工作簿
HSSFSheet sheet = wb.getSheetAt(0);
//获得行
HSSFRow row = sheet.getRow(3);
//获得行中的列,即单元格
HSSFCell cell = row.getCell(0);
//获得单元格中的值,这里该单元格的值为数字,所以使用getNumericCellValue,如为字符串则会报错
//如何取别的值,见print2方法
double msg = cell.getNumericCellValue();
System.out.println(msg);
print1();
print2();
} catch (Exception e) {
e.printStackTrace();
}
} public static void print1() throws Exception {
InputStream is = new FileInputStream("d:\\book1.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));
//A text extractor for Excel files.
//Returns the textual content of the file, suitable for indexing by something like Lucene,
//but not really intended for display to the user.
//用来获得整个excel文件的内容,表示为字符串
ExcelExtractor extractor = new ExcelExtractor(wb);
//字符串所包含的类型,详见api
extractor.setIncludeSheetNames(true);
extractor.setFormulasNotResults(false);
extractor.setIncludeCellComments(true);
//获得字符串形式
String text = extractor.getText();
System.out.println(text);
} public static void print2() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(
"d:\\book1.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();
//用于测试的文件就2列,第一列为数字,第二列为字符串
//对于数字cell.getCellType的值为HSSFCell.CELL_TYPE_NUMERIC,为0
//对于字符串cell.getCellType的值为HSSFCell.CELL_TYPE_STRING,为1
//完整的类型列表请查看api
String content = cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC?cell.getNumericCellValue()+"":cell.getStringCellValue();
System.out.println(content);
}
}
} }
下面是创建一个excel文件
package 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.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor; public class TestWrite { /**
* @param args
*/
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(); } }
使用poi读写excel文件的更多相关文章
- Apache POI 读写 Excel 文件
目录 写入 Excel 文件 读取 Excel 文件 遍历 Excel 文件 需要的 maven 依赖 完整代码 写入 Excel 文件 // 写入 Excel 文件 // ============= ...
- poi读写Excel文件
jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好 poi功能比jxl强大但是比较吃内存,支持计算公式 关于jxl具体可以参考 http:// ...
- java 使用POI读写Excel文件(兼容2003、2007)
package com.jadyer.demo; import java.io.File; import java.io.FileOutputStream; import java.io.IOExce ...
- C++读写EXCEL文件OLE,java读写excel文件POI 对比
C++读写EXCEL文件方式比较 有些朋友问代码的问题,将OLE读写的代码分享在这个地方,大家请自己看.http://www.cnblogs.com/destim/p/5476915.html C++ ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- C# 使用 NPOI 库读写 Excel 文件
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼容 xls 和 xlsx.官网提供了一份 Examples,给出 ...
- jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL
这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...
- spring boot 使用 POI 读取Excel文件
内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...
随机推荐
- [Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架【翻译】
[Installing Metasploit Framework on CentOS_RHEL 6]在CentOS_RHEL 6上安装Metasploit的框架[翻译] 标记声明:蓝色汉子为翻译上段英 ...
- linux手动安装sbt过程
ubuntu14 手动安装sbt 参见官网配置说明http://www.scala-sbt.org/release/tutorial/Manual-Installation.html 1.下载sbt通 ...
- CentOS6上实现Tomcat8 service启动,并查看status
service配置脚本,“/etc/init.d/tomcat”,实现通过"service tomcat status " 查看tomcat状态,并输出PID,见脚本 # desc ...
- Linux权限详解 命令之 chmod:修改权限
权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...
- [Model] AlexNet
CaffeNet - a variant of AlexNet Ref: Classification: Instant Recognition with Caffe This is caffeNet ...
- 断网环境下利用pip安装Python离线安装包
这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧. # 生产环境 windows 7 # python 2.7.9 # pip 1.5.2 友情提示:当 ...
- centos7 安装zookeeper3.4.8集群
1.下载上传文件到centos中 2.解压文件夹 3.cd conf 文件下,cp zoo_sample.cfg zoo.cfg 4.vim zoo.cfg # The number of mil ...
- officewebapps 服务器部署问题
officewebapps 服务器部署问题 部署文档 http://technet.microsoft.com/zh-cn/library/jj219455 New-OfficeWebAppsFarm ...
- Phoenix系列:二级索引(1)
Phoenix使用HBase作为后端存储,对于HBase来说,我们通常使用字典序的RowKey来快速访问数据,除此之外,也可以使用自定义的Filter来搜索数据,但是它是基于全表扫描的.而Phoeni ...
- 版本控制 version control和团队协作
这些技术你可能暂时不会用到,但是一旦软件体量变大,开发人数增加,这就带来质变,需要借助一些工具或者技术才能完成这些复杂的工程. 你可以从最简单的情况思考,你可以对任何类型的文件进行版本控制,比如一个p ...