黑马 - poi Excel
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相关推荐
- cn.hutool.poi.excel.ExcelUtil 时不时没有数据列
代码 List<WleUserSaleVo> list = reportWleSaleService.wleUserSaleList(null, vo);ExcelWriter excel ...
- poi excel文档生成与读取
阿帕奇poi excel文档操作 1. introduce 2. 轮子 3. demo 以九九乘法表为例 3.1 xls的生成 3.2 xlsx的生成 3.3 读取xlsx 1. introduce ...
- POI Excel 合并数据相同的行
import java.io.Serializable;/*** POI Excel报表导出,列合并实体<br>* * @author WQ**/ public class PoiMode ...
- poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)
POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...
- poi excel下载
poi excel下载 1.声明浏览器类型:application/vnd.ms-excel public static final String XLS = "application/vn ...
- 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 ...
- POI EXCEL修改图表
具体参考:POI EXCEL 图表.折线图.条形图,柱状图.饼图.散点图_小百菜的博客-CSDN博客_poi 图表 生成柱状图示例 : package com.demo.test;import jav ...
- poi excel 导出设置边框,自定义背景色,自定义字体
HSSFCellStyle style = changeStyleByCreditExport(workbook, "仿宋",12," 204, 204, 255&quo ...
- java excel 单元格类型,POI Excel 单元格内容类型判断并取值
个人用到的 String birthdayVal = null; switch (cell_2.getCellTypeEnum()) { case STRING: birthdayVal = cell ...
最新文章
- 拯救莫莉斯[GDOI2014]
- 【Spring注解】@Condition条件注册
- bash--shell高级编程-特殊字符
- pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练
- 设计模式学习系列9 外观模式Facade
- mybatis里oracle与MySQL的insert_update
- 猫哥教你写爬虫 005--数据类型转换-小作业
- 教你如何在@ViewChild查询之前获取ViewContainerRef
- 一个Demo带你彻底掌握View的滑动冲突
- python爬取flash数据_爬取flash数据
- HDOJ--4548--美素数
- 计算机四级网络题型,全国计算机四级考试题型
- No serializer的解决方法
- Keil 保护视力背景颜色设置
- Java开发必须会的技能!java页面导出数据到excel
- vue2.0引入antd
- Excel如何快速将多行数据转为一行
- 最新zotero与obsidian笔记联动教程(可代替citations和mdnotes)
- 变形金刚2幕后制作解密
- 使用Hexo搭建个人博客-保姆级教程
热门文章
- 错误模块名称: KERNELBASE.dll 问题记录
- 【Python自动化测试】:模拟鼠标操作
- UICollectionView 右对齐的解决方案
- pandas dataframe获取列名、添加列名、列索引
- 成都启之航电商:抖音小店使用效果+性价比产品+直播
- 【深度学习NLP论文笔记】《Deep Text Classification Can be Fooled》
- 什么是僵尸进程(Zombie Processes)
- 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出
- 磨金石教育摄影技能干货分享|什么是序列摄影?它让摄影更加深刻
- 劳动节程序员应该知道的知识——计算机