【JAVA】使用Aphache poi操作EXCEL 笔记
1 下载poi,地址
http://poi.apache.org/
选择3.9版本。
2
刚开始尝试 把poi.jar放在D:\Program Files\java\jdk1.6.0_20\lib(不管用。删除)
若你的是web Project工程,就直接把poi.jar包复制粘贴到webroot的web-inf下面的lib文件夹里面;
若你的是java Project工程,就打开盖工程的属性(Properties)找到他的java build path然后有个Libraries选项卡在右侧可通过Add jars来添加放置在工程里面的poi.jar包,如果你的这个poi.jar包不是放在工程中的,可以通过add external jars来添加外部jar包
3 创建1个EXCEL文件。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class PoiMain { /**
* @param args
*/
public static void main(String[] args) {
try {
// 创建一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
String path = "D:\\Workspace\\TestPOI\\a.xls";
FileOutputStream fileOut = new FileOutputStream(new File(path));
wb.write(fileOut);
fileOut.close();
} catch (Exception e) {
// TODO: handle exception
} } }
包结构
4 创建一个Excle,并写入各种格式的内容
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import org.apache.poi.hssf.usermodel.*;//Excel所有 public class PoiMain { /**
* @param args
* 创建一个xls文件
* 用到org.apache.poi.hssf.usermodel.HSSFWorkbook;//Excel的文档对象
* 主程序,唯一程序,排他
* @作者 小白
*/
// public static void main(String[] args) {
// try {
// // 创建一个Excel文件
// HSSFWorkbook wb = new HSSFWorkbook();
// String path = "D:\\Workspace\\TestPOI\\a.xls";
// FileOutputStream fileOut = new FileOutputStream(new File(path));
// wb.write(fileOut);
// fileOut.close();
// } catch (Exception e) {
// // TODO: handle exception
// }
//
// } /**
* @param args
* 创建一个xls文件
* 用到org.apache.poi.hssf.usermodel.*;//Excel所有
* 主程序,唯一程序,排他
*/
public static void main(String[] args) throws IOException{
try {
HSSFWorkbook wb = new HSSFWorkbook(); //建立新HSSFWorkbook对象
HSSFSheet sheet = wb.createSheet("new sheet"); //建立新的sheet对象 //第0行
HSSFRow row = sheet.createRow((short)0);
//在sheet里创建一行,参数为行号(第一行,此处可想象成数组)
HSSFCell cell = row.createCell(0);
//在row里建立新cell(单元格),参数为列号(第一列)
cell.setCellValue(1) ;//设置cell的整数类型的值
row.createCell(1).setCellValue(1.2); //设置cell浮点类型的值
row.createCell(2).setCellValue("haha"); //设置cell字符类型的值
row.createCell(3).setCellValue(true); //设置cell布尔类型的值 HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell样式
HSSFDataFormat format= wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy年mm月d日 hh:mm:ss"));//这两行是日期格式的重点
//设置cell样式为定制的日期格式
HSSFCell dCell =row.createCell(4);
dCell.setCellValue(new Date()); //设置cell为日期类型的值
dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式 HSSFCell csCell =row.createCell(5);
// csCell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置cell编码解决中文高位字节截断
csCell.setCellValue("这是中文的测试"); //设置中西文结合字符串 row.createCell(6).setCellType(HSSFCell.CELL_TYPE_ERROR);
//建立错误cell //第1行
HSSFRow row1 = sheet.createRow(1);
row1.createCell(0).setCellValue(false);
row1.createCell(1).setCellValue(19907);
row1.createCell(2).setCellValue("中华民国"); //创建生成文件
String path = "D:\\Workspace\\TestPOI\\ab.xls";
FileOutputStream fileOut = new FileOutputStream(new File(path));
wb.write(fileOut);
fileOut.close(); } catch (Exception e) {
// TODO: handle exception } } }
包结构
表内容
5 把刚才创建的东东读出来
为了方便主函数操作,把读写类和测试类分开了
包结构:
主类 PoiMain.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import org.apache.poi.hssf.usermodel.*;//Excel所有 public class PoiMain { /**
* @param args
* 创建一个xls文件
* 用到org.apache.poi.hssf.usermodel.HSSFWorkbook;//Excel的文档对象
* 主程序,唯一程序,排他
* @作者 小白
*/
// public static void main(String[] args) {
// try {
// // 创建一个Excel文件
// HSSFWorkbook wb = new HSSFWorkbook();
// String path = "D:\\Workspace\\TestPOI\\a.xls";
// FileOutputStream fileOut = new FileOutputStream(new File(path));
// wb.write(fileOut);
// fileOut.close();
// } catch (Exception e) {
// // TODO: handle exception
// }
//
// } /**
* @param args
* 创建一个xls文件
* 用到org.apache.poi.hssf.usermodel.*;//Excel所有
* 主程序,唯一程序,排他
*/
public static void main(String[] args) throws IOException{ //创建Excel
// CreatExcelTest cTest = new CreatExcelTest();
// cTest.creatExcel(); //读取Excel
GetVlueTest gTest = new GetVlueTest();
gTest.getvalue(); // TestPrint testPrint = new TestPrint();
// testPrint.TestPrint(); } }
创建Excel的类 CreatExcelTest.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; 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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class CreatExcelTest { public static void creatExcel(){
try {
HSSFWorkbook wb = new HSSFWorkbook(); //建立新HSSFWorkbook对象
HSSFSheet sheet = wb.createSheet("new sheet"); //建立新的sheet对象 //第0行
HSSFRow row = sheet.createRow((short)0);
//在sheet里创建一行,参数为行号(第一行,此处可想象成数组)
HSSFCell cell = row.createCell(0);
//在row里建立新cell(单元格),参数为列号(第一列)
cell.setCellValue(1) ;//设置cell的整数类型的值
row.createCell(1).setCellValue(1.2); //设置cell浮点类型的值
row.createCell(2).setCellValue("haha"); //设置cell字符类型的值
row.createCell(3).setCellValue(true); //设置cell布尔类型的值 HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell样式
HSSFDataFormat format= wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy年mm月d日 hh:mm:ss"));//这两行是日期格式的重点
//设置cell样式为定制的日期格式
HSSFCell dCell =row.createCell(4);
dCell.setCellValue(new Date()); //设置cell为日期类型的值
dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式 HSSFCell csCell =row.createCell(5);
// csCell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置cell编码解决中文高位字节截断
csCell.setCellValue("这是中文的测试"); //设置中西文结合字符串 row.createCell(6).setCellType(HSSFCell.CELL_TYPE_ERROR);
//建立错误cell //第1行
HSSFRow row1 = sheet.createRow(1);
row1.createCell(0).setCellValue(false);
row1.createCell(1).setCellValue(19907);
row1.createCell(2).setCellValue("中华民国a "); //创建生成文件
String path = "D:\\Workspace\\TestPOI\\abcd.xls";
FileOutputStream fileOut = new FileOutputStream(new File(path));
wb.write(fileOut);
fileOut.close(); } catch (Exception e) {
// TODO: handle exception }
} }
读取Excel的类,读取出来的内容打印在控制台了。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import javax.tools.JavaFileObject.Kind; 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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class GetVlueTest { public static void getvalue(){ try { String filePath = "D:\\Workspace\\TestPOI\\b.xls";
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(filePath));
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
int i = hssfSheet.getLastRowNum();//最后一行行标,比行数小1 for(int k=0; k<=i;k++){ int m = hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1 for(int j=0; j<m;j++)
{
hssfSheet.getRow(k).getCell(j).setCellType(HSSFCell.CELL_TYPE_STRING);//为了打印输出,强制把不是字符串的东东转换成字符串
System.out.println(hssfSheet.getRow(k).getCell(j).getStringCellValue());
} } } catch (Exception e) {
// TODO: handle exception } } }
【JAVA】使用Aphache poi操作EXCEL 笔记的更多相关文章
- java使用Apache POI操作excel文件
官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...
- java 使用jxl poi 操作excel
java操作excel 创建.修改 xls 文件 JAVA操作Excel文件 Java生成和操作Excel文件 java导出Excel通用方法 Java 实现导出excel表 POI Java PO ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- java里poi操作excel的工具类(兼容各版本)
转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...
- Java POI操作Excel注意点
excel的行索引和列索引都是从0开始,而行号和列号都是从1开始 POI·操作excel基本上都是使用索引 XSSFRow对象的 row.getLastCellNum() 方法返回的是当前行最后有效列 ...
- POI操作Excel
POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- 自己的包poi操作Excel工具
在前面的文章<使用poi读写Excel>中分享了一下poi操作Excel的简单演示样例.这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完毕的功能是:读取Excel.汇总E ...
- POI操作Excel(xls、xlsx)
阿帕奇官网:http://poi.apache.org/ POI3.17下载:http://poi.apache.org/download.html#POI-3.17 POI操作Excel教程(易百教 ...
随机推荐
- EXSI6.5复制文件太慢的解决方法
听说裸金属服务器性能比在windows中安装VMware workstations要好,就在电脑上安装了一个EXSI6.5. 可是在复制文件时很慢,一个3G的文件复制了两三个小时,还时常担心网络会断, ...
- 黄聪:PHP如何实现延迟一定时间后自动刷新当前页面、自动跳转header("refresh:1;url={$url}");
//1秒后自动跳转 header("refresh:1;url={$url}"); exit; //1秒后自动刷新当前页面header("refresh:1;" ...
- 常用的几个vagrant命令
$ vagrant init # 初始化 $ vagrant up # 启动虚拟机$ vagrant halt # 关闭虚拟机$ vagrant reload ...
- vue聊天功能之滚动条自动定位到底部
一.问题描述 首次进入聊天窗口,数据加载之后先显示最早消息,后显示最新消息,也就是数据加载完之后,延迟了一个时间滚动条才自动定位到最底部. 二.解决方案 如果数据在刚好加载完的时候滚动条就定位到了最底 ...
- shiro登录实现自定义路径跳转
一.实现需求 登录框架采用shiro,需根据不同客户端类型实现相对应定义页面跳转. 二.登录页jsp表单 <div class="input-prepend" title=& ...
- ASP.NET MVC如何在Action中返回脚本并执行
我们都知道在aspx页面的cs文件中只要用Respos.Write("<script></scritp>")就可以在前台执行脚本 但是在MVC中就不一样了, ...
- 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入数字矩阵
从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中.例如:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 ...
- Hive的UDF是什么?
首先我们学习hadoop的时候,为了让我们不太会java语言但是对SQL很熟悉的工程师能够操作基本的mapreduce计算过程,Hive被设计出来了.Hive就好比是hadoop在执行MR(mapre ...
- [UE4]工程设置:自动捕获鼠标、通过代码设置鼠标显示隐藏、输入模式、编译时自动保存
一.在4.20版本中运行游戏,在没有进行任何设置的情况下,游戏不会自动捕获鼠标,游戏不会接受输入,需要手动点一下游戏界面才行.如果要跟老版本一样运行游戏自动捕获鼠标,需要进行设置 二.也可以通过代码的 ...
- Linux mysql 5.7.23 主从复制(异步复制)
docker容器主节点: 172.17.0.9 docker容器子节点: 172.17.0.10 异步复制: 首先确认主库和从库是否一致,最好都是刚刚初始化的干净的数据库 如果主库正在使用不能初始化 ...