黑马 - poi Excel

Posted hk-zsg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑马 - 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.创建sheet
        Sheet 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.获取Sheet
        Sheet 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;
    

 

以上是关于黑马 - poi Excel的主要内容,如果未能解决你的问题,请参考以下文章

什么是黑马?以及黑马原型-设计思维

黑马程序员是黑社会的吗

黑马程序员怎么样

黑马程序员这家IT培训机构怎么样呀?

北京的黑马程序员训练营怎么样?

黑马程序员前端-CSS练手之学成在线页面制作