3.poi入门操作

  3.1 搭建环境

 1 <dependency>
 2       <groupId>org.apache.poi</groupId>
 3       <artifactId>poi</artifactId>
 4       <version>4.1.0</version>
 5   </dependency>
 6   <!-- poi2007相应依赖坐标 -->
 7   <dependency>
 8       <groupId>org.apache.poi</groupId>
 9       <artifactId>poi-ooxml</artifactId>
10       <version>4.1.0</version>
11   </dependency>
12   <dependency>
13       <groupId>org.apache.poi</groupId>
14       <artifactId>poi-ooxml-schemas</artifactId>
15       <version>4.1.0</version>
16   </dependency>

3.4基本操作

public class App {public static void main(String[] args) {//1.创建工作簿Workbook wb = new XSSFWorkbook();//2007版//2.创建sheetSheet sheet = wb.createSheet("test");//3文件流try (FileOutputStream fos = new FileOutputStream("E:\\poi\\test.xlsx")) {wb.write(fos);} catch (IOException e) {e.printStackTrace();}}
}

Demo2 设置单元格样式

视频链接

 1 /**
 2  * Demo2设置单元格样式
 3  */
 4 public class Demo2 {
 5     public static void main(String[] args) {
 6         //1.创建工作簿
 7         Workbook wb = new XSSFWorkbook();//2007版
 8         //2.创建sheet
 9         Sheet sheet = wb.createSheet("test");
10         //创建行对象,参数:索引从0开始
11         Row row = sheet.createRow(2);
12         //创建单元格对象,索引从0开始
13         Cell cell = row.createCell(2);
14         cell.setCellValue("才高八斗");
15
16         //样式处理
17         //创建样式对象
18         CellStyle style = wb.createCellStyle();
19         style.setBorderTop(BorderStyle.THIN);//上边框
20         style.setBorderRight(BorderStyle.THIN);//右边框
21         style.setBorderBottom(BorderStyle.THIN);//下边框
22         style.setBorderLeft(BorderStyle.THIN);//左边框
23
24         //创建字体对象
25         Font font = wb.createFont();
26         font.setFontName("华文行楷");
27         font.setFontHeightInPoints((short) 28);//设置字号
28         style.setFont(font);
29
30         //行高和列宽
31         row.setHeightInPoints(50);//设置行高
32         sheet.setColumnWidth(2, 31 * 256);//第三列,设置列宽需要乘以256
33
34         //设置水平居中
35         style.setAlignment(HorizontalAlignment.CENTER);
36         //设置垂直居中
37         style.setVerticalAlignment(VerticalAlignment.CENTER);
38
39         //向单元格设置样式
40         cell.setCellStyle(style);
41
42         //3文件流
43         try (FileOutputStream fos = new FileOutputStream("E:\\poi\\test3.xlsx")) {
44             wb.write(fos);
45         } catch (IOException e) {
46             e.printStackTrace();
47         }
48
49     }
50 }

Demo3 在Excel中添加图片

视频链接

 1 /**
 2  * Demo3在Excel中添加图片
 3  */
 4 public class Demo1 {
 5     public static void main(String[] args) throws IOException {
 6         //1.创建工作簿
 7         Workbook wb = new XSSFWorkbook();//2007版
 8         //2.创建sheet
 9         Sheet sheet = wb.createSheet("test");
10
11         //------------------------------------------------------------
12         //1.读取图片流
13         FileInputStream fis = new FileInputStream("E:\\poi\\merry.jpg");
14
15         //2.转化二进制数组
16         byte[] bytes = IOUtils.toByteArray(fis);
17         fis.read(bytes);
18         //3.向poi内存中添加一张图片,返回图片在图片集合中的索引
19         int index = ((XSSFWorkbook) wb).addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
20         //4.绘制图片工具类
21         CreationHelper helper = wb.getCreationHelper();
22         //5.创建一个绘图对象
23         Drawing<?> drawing = sheet.createDrawingPatriarch();
24         //6.创建锚点,设置图片坐标
25         ClientAnchor anchor = helper.createClientAnchor();
26         //设置图片起始位置
27         anchor.setRow1(1);
28         anchor.setCol1(1);
29         设置图片结束位置
30         anchor.setRow2(15);
31         anchor.setCol2(15);
32         //7.绘制图片
33         Picture picture = drawing.createPicture(anchor, index);//图片位置,图片的索引
34 //        picture.resize();//自适应渲染图片
35         //------------------------------------------------------------
36         //3文件流
37         try (FileOutputStream fos = new FileOutputStream("E:\\poi\\test4.xlsx")) {
38             wb.write(fos);
39         } catch (IOException e) {
40             e.printStackTrace();
41         }
42
43     }
44 }

加载Excel

/*** Demo4读取Excel并解析* sheet.getLastRowNum():获取最后一行的索引值* row.getLastCellNum():获取最后一个单元格的号码*/
public class Demo4 {public static void main(String[] args) throws IOException {//1.根据Excel文件创建工作簿Workbook wb = new XSSFWorkbook("E:\\poi\\demo2.xlsx");//2.获取SheetSheet sheet = wb.getSheetAt(0);//3.获取sheet中的每一行和每一个单元格for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {Row row = sheet.getRow(rowNum);//根据索引获取每一行if (row == null){continue;}StringBuilder sb = new StringBuilder();for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) {//根据索引获取每一个单元格Cell cell = row.getCell(cellNum);if(cell == null){continue;}//获取每一个单元格的内容Object value = getCellValue(cell);sb.append(value).append("-");}System.out.println(sb.toString());}}private static Object getCellValue(Cell cell) {//1.获取单元格的属性类型CellType cellType = cell.getCellType();//2.根据单元格的类型获取时间Object value = null;switch (cellType) {case NUMERIC:if (DateUtil.isCellDateFormatted(cell)) {//日期格式value = cell.getDateCellValue();} else {value = cell.getNumericCellValue();}break;case STRING:value = cell.getStringCellValue();break;case BOOLEAN:value = cell.getBooleanCellValue();break;case FORMULA://公式类型value = cell.getCellFormula();break;default:break;}return value;}
}

转载于:https://www.cnblogs.com/hk-zsg/p/11565475.html

黑马 - poi Excel相关推荐

  1. cn.hutool.poi.excel.ExcelUtil 时不时没有数据列

    代码 List<WleUserSaleVo> list = reportWleSaleService.wleUserSaleList(null, vo);ExcelWriter excel ...

  2. poi excel文档生成与读取

    阿帕奇poi excel文档操作 1. introduce 2. 轮子 3. demo 以九九乘法表为例 3.1 xls的生成 3.2 xlsx的生成 3.3 读取xlsx 1. introduce ...

  3. POI Excel 合并数据相同的行

    import java.io.Serializable;/*** POI Excel报表导出,列合并实体<br>* * @author WQ**/ public class PoiMode ...

  4. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)

    POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...

  5. poi excel下载

    poi excel下载 1.声明浏览器类型:application/vnd.ms-excel public static final String XLS = "application/vn ...

  6. Java Excel 复制单元格 poi Excel 复制单元格 Java Excel 复制行 Java Excel 复制 sheet 页 poi excel copy

    Java Excel 复制单元格 poi Excel 复制单元格 Java Excel 复制行 Java Excel 复制 sheet 页 一.前言 1.本文记录 poi excel 实现 单元格ce ...

  7. POI EXCEL修改图表

    具体参考:POI EXCEL 图表.折线图.条形图,柱状图.饼图.散点图_小百菜的博客-CSDN博客_poi 图表 生成柱状图示例 : package com.demo.test;import jav ...

  8. poi excel 导出设置边框,自定义背景色,自定义字体

    HSSFCellStyle style = changeStyleByCreditExport(workbook, "仿宋",12," 204, 204, 255&quo ...

  9. java excel 单元格类型,POI Excel 单元格内容类型判断并取值

    个人用到的 String birthdayVal = null; switch (cell_2.getCellTypeEnum()) { case STRING: birthdayVal = cell ...

最新文章

  1. 拯救莫莉斯[GDOI2014]
  2. 【Spring注解】@Condition条件注册
  3. bash--shell高级编程-特殊字符
  4. pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练
  5. 设计模式学习系列9 外观模式Facade
  6. mybatis里oracle与MySQL的insert_update
  7. 猫哥教你写爬虫 005--数据类型转换-小作业
  8. 教你如何在@ViewChild查询之前获取ViewContainerRef
  9. 一个Demo带你彻底掌握View的滑动冲突
  10. python爬取flash数据_爬取flash数据
  11. HDOJ--4548--美素数
  12. 计算机四级网络题型,全国计算机四级考试题型
  13. No serializer的解决方法
  14. Keil 保护视力背景颜色设置
  15. Java开发必须会的技能!java页面导出数据到excel
  16. vue2.0引入antd
  17. Excel如何快速将多行数据转为一行
  18. 最新zotero与obsidian笔记联动教程(可代替citations和mdnotes)
  19. 变形金刚2幕后制作解密
  20. 使用Hexo搭建个人博客-保姆级教程

热门文章

  1. 错误模块名称: KERNELBASE.dll 问题记录
  2. 【Python自动化测试】:模拟鼠标操作
  3. UICollectionView 右对齐的解决方案
  4. pandas dataframe获取列名、添加列名、列索引
  5. 成都启之航电商:抖音小店使用效果+性价比产品+直播
  6. 【深度学习NLP论文笔记】《Deep Text Classification Can be Fooled》
  7. 什么是僵尸进程(Zombie Processes)
  8. 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出
  9. 磨金石教育摄影技能干货分享|什么是序列摄影?它让摄影更加深刻
  10. 劳动节程序员应该知道的知识——计算机