当前位置: 首页 > news >正文

(二)JAVA使用POI操作excel

 

1,创建一个时间格式的单元格

Demo4.java

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileOutputStream;
 4 import java.util.Calendar;
 5 import java.util.Date;
 6 
 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 8 import org.apache.poi.ss.usermodel.Cell;
 9 import org.apache.poi.ss.usermodel.CellStyle;
10 import org.apache.poi.ss.usermodel.CreationHelper;
11 import org.apache.poi.ss.usermodel.Row;
12 import org.apache.poi.ss.usermodel.Sheet;
13 import org.apache.poi.ss.usermodel.Workbook;
14 
15 public class Demo4 {
16 
17     public static void main(String[] args) throws Exception{
18         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
19         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
20         
21         Row row=sheet.createRow(0); // 创建一个行
22         
23         Cell cell=row.createCell(0); // 创建一个单元格  第1列
24         cell.setCellValue(new Date());  // 给单元格设置值
25         
26         CreationHelper createHelper=wb.getCreationHelper();
27         CellStyle cellStyle=wb.createCellStyle(); //单元格样式类
28         cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyy-mm-dd hh:mm:ss"));
29         cell=row.createCell(1); // 第二列
30         cell.setCellValue(new Date());
31         cell.setCellStyle(cellStyle);
32         
33         cell=row.createCell(2);  // 第三列
34         cell.setCellValue(Calendar.getInstance());
35         cell.setCellStyle(cellStyle);
36         
37         FileOutputStream fileOut=new FileOutputStream("d:\\工作簿.xls");
38         wb.write(fileOut);
39         fileOut.close();
40     }
41 }

 

 

 


2,处理不同内容格式的单元格

 Demo5.java

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileOutputStream;
 4 import java.util.Calendar;
 5 import java.util.Date;
 6 
 7 import org.apache.poi.hssf.usermodel.HSSFCell;
 8 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.usermodel.CellStyle;
11 import org.apache.poi.ss.usermodel.CreationHelper;
12 import org.apache.poi.ss.usermodel.Row;
13 import org.apache.poi.ss.usermodel.Sheet;
14 import org.apache.poi.ss.usermodel.Workbook;
15 
16 public class Demo5 {
17 
18     public static void main(String[] args) throws Exception{
19         Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿
20         Sheet sheet=wb.createSheet("第一个Sheet页");  // 创建第一个Sheet页
21         
22         Row row=sheet.createRow(0); // 创建一个行
23         
24         Cell cell=row.createCell(0); // 创建一个单元格  第1列
25         cell.setCellValue(new Date());  // 给单元格设置值
26         
27         row.createCell(1).setCellValue(1);
28         row.createCell(2).setCellValue("一个字符串");
29         row.createCell(3).setCellValue(true);
30         row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
31         row.createCell(5).setCellValue(false);
32         
33         FileOutputStream fileOut=new FileOutputStream("d:\\工作簿.xls");
34         wb.write(fileOut);
35         fileOut.close();
36     }
37 }

 

 

3,遍历工作簿的行和列并获取单格内容

 

我们遍历这个excel。  

Demo6.java

 

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.InputStream;
 5 
 6 import org.apache.poi.hssf.usermodel.HSSFCell;
 7 import org.apache.poi.hssf.usermodel.HSSFRow;
 8 import org.apache.poi.hssf.usermodel.HSSFSheet;
 9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
10 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
11 
12 public class Demo6 {
13 
14     public static void main(String[] args) throws Exception{
15         InputStream is=new FileInputStream("d:\\个人名单.xls");
16         POIFSFileSystem fs=new POIFSFileSystem(is);
17         HSSFWorkbook wb=new HSSFWorkbook(fs);
18         
19         HSSFSheet hssfSheet=wb.getSheetAt(0); // 获取第一个Sheet页
20         if(hssfSheet==null){
21             return;
22         }
23         // 遍历行Row
24         for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
25             HSSFRow hssfRow=hssfSheet.getRow(rowNum);
26             if(hssfRow==null){
27                 continue;
28             }
29             // 遍历列Cell
30             for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++){
31                 HSSFCell hssfCell=hssfRow.getCell(cellNum);
32                 if(hssfCell==null){
33                     continue;
34                 }
35                 System.out.print(" "+getValue(hssfCell));
36             }
37             System.out.println();
38         }
39     }
40     
41     private static String getValue(HSSFCell hssfCell){
42         if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
43             return String.valueOf(hssfCell.getBooleanCellValue());
44         }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
45             return String.valueOf(hssfCell.getNumericCellValue());
46         }else{
47             return String.valueOf(hssfCell.getStringCellValue());
48         }
49     }
50 }

控制台输出:

这里面是遍历 ,是表单形式。。。

 

4,文本提取

我们文本提取上面个人名单.xls表格。。。

  Demo7.java

 

 1 package com.wishwzp.poi;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.InputStream;
 5 
 6 import org.apache.poi.hssf.extractor.ExcelExtractor;
 7 import org.apache.poi.hssf.usermodel.HSSFCell;
 8 import org.apache.poi.hssf.usermodel.HSSFRow;
 9 import org.apache.poi.hssf.usermodel.HSSFSheet;
10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
11 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
12 
13 public class Demo7 {
14 
15     public static void main(String[] args) throws Exception{
16         InputStream is=new FileInputStream("d:\\个人名单.xls");
17         POIFSFileSystem fs=new POIFSFileSystem(is);
18         HSSFWorkbook wb=new HSSFWorkbook(fs);
19         
20         ExcelExtractor excelExtractor=new ExcelExtractor(wb);
21         excelExtractor.setIncludeSheetNames(false);// 我们不需要Sheet页的名字
22         System.out.println(excelExtractor.getText());
23     }
24     
25 
26 }

 

控制台显示:

这里面是文本信息。。。

 

excelExtractor.setIncludeSheetNames(false);这个如果为true的话就会显示Sheet页了

excelExtractor.setIncludeSheetNames(true):

控制台输出:

 

转载于:https://www.cnblogs.com/wishwzp/p/5494038.html

相关文章:

  • raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机
  • 上线5年,手握用户5千万、问题1千万,知乎要做付费文字直播了,你会买单吗?...
  • php连接mysql数据库
  • 边工作边刷题:70天一遍leetcode: day 8-2
  • 作业8-单元测试练习
  • ReactNative 从环境和第一个demo说起,填坑教程
  • Linux下NDK编译FFMPEG包含neon参数
  • [POJ1236]Network of Schools(并查集+floyd,伪强连通分量)
  • 周总结6
  • 每天一个linux命令(30): chown命令
  • 第十二周学习进度条
  • 分层开发之MySchool
  • 使用SVN服务器管理源码
  • javascript语法之String对象
  • 教你如何在linux上装逼,shell中颜色的设置
  • [nginx文档翻译系列] 控制nginx
  • 【Linux系统编程】快速查找errno错误码信息
  • 【面试系列】之二:关于js原型
  • Babel配置的不完全指南
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Django 博客开发教程 8 - 博客文章详情页
  • Docker下部署自己的LNMP工作环境
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • node和express搭建代理服务器(源码)
  • Redis字符串类型内部编码剖析
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue小说阅读器(仿追书神器)
  • Webpack 4 学习01(基础配置)
  • 阿里云应用高可用服务公测发布
  • 初探 Vue 生命周期和钩子函数
  • 分享一份非常强势的Android面试题
  • 给新手的新浪微博 SDK 集成教程【一】
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 后端_ThinkPHP5
  • 前端知识点整理(待续)
  • 日剧·日综资源集合(建议收藏)
  • 如何设计一个微型分布式架构?
  • 算法-图和图算法
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ###项目技术发展史
  • $NOIp2018$劝退记
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (强烈推荐)移动端音视频从零到上手(下)
  • (生成器)yield与(迭代器)generator
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)基于IDEA的JAVA基础1
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端