杨校老师课堂之POI导入数据

简介: 杨校老师课堂之POI导入数据
  1. 导入坐标
  <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2.编码

package com.example.springbootmybatis;

import com.example.springbootmybatis.entity.Book;
import com.example.springbootmybatis.entity.User;
import com.example.springbootmybatis.service.BookService;
import com.example.springbootmybatis.service.UserService;
import org.apache.poi.ss.usermodel.*;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringbootMybatisApplicationTests {

    @Resource
    private BookService bookService;
    // 实例化集合,用于存储读取的excel数据
    List<Book> bookList = new ArrayList<>();

    @Test
    public void contextLoads() throws IOException {
        //  1. 手写创建 File  ||  稍后记得导入  commons-io 、commons-fileupload
        File file = new File("C:\\Users\\Mryang\\Desktop\\book.xlsx");
        //  2.创建工作簿
        Workbook workbook = WorkbookFactory.create(file);

        int sheets = workbook.getNumberOfSheets();

        System.out.println("该文件有"+sheets+"表");

        Sheet sheet = workbook.getSheetAt(0);

        System.out.println(sheet.getSheetName());

        int rows = sheet.getPhysicalNumberOfRows();//getPhysicalNumberOfRows 获取所有行数
        System.out.println("行数是" + rows);

        //  循环所有的行数
        for (int j = 0; j < rows; j++) {

            // 判断是不是第一行标题 是不是表头?
            if (sheet.getFirstRowNum() == j){
                //  第一行不要了
                continue;
            }
            Row row = sheet.getRow(j);
            int cells = row.getPhysicalNumberOfCells();//getPhysicalNumberOfCells 获取所有列数

            Book book = new Book();// 创建10个呀

            for (int i = 0; i < cells; i++) {
                switch (i){
                    case 0 ://第1列
                        row.getCell(i).setCellType(CellType.STRING);//  设置单元格的类型字符串类型
                        int bookId  = Integer.parseInt(row.getCell(i).getStringCellValue());//转换为整数
                        book.setBookId(bookId);
                        break;
                    case 1 ://第2列
                        row.getCell(i).setCellType(CellType.STRING);
                        book.setBookName(row.getCell(i).getStringCellValue());
                        break;
                    case 2 ://第3列
                        row.getCell(i).setCellType(CellType.STRING);
                        book.setBookPrice(Double.parseDouble(row.getCell(i).getStringCellValue()));
                        break;
                    case 3 ://第4列
                        row.getCell(i).setCellType(CellType.STRING);
                        book.setBookPublish(row.getCell(i).getStringCellValue());
                        break;
                }
            }
            bookList.add(book);
        }
        //System.out.println("bookList = " + bookList);//检验是否将配置文件内的书信息存储到集合中

        for (Book book : bookList) {
          //System.out.println(book);
            bookService.addBook(book);
          
        }
    }
}
目录
相关文章
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第七讲之自动筛选
杨老师课堂之Excel VBA 程序开发第七讲之自动筛选
46 1
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第七讲表格数据高亮显示
杨老师课堂之Excel VBA 程序开发第七讲表格数据高亮显示
53 1
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第三讲创建日报表
杨老师课堂之Excel VBA 程序开发第三讲创建日报表
29 0
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
43 0
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
44 1
|
6月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第七讲自动备份
杨老师课堂之Excel VBA 程序开发第七讲自动备份
31 0
|
6月前
杨校老师课堂之基于File类的文件管理器
杨校老师课堂之基于File类的文件管理器
38 0
|
6月前
杨校老师课堂之Servlet的重构为BaseServlet的步骤【内含视频讲解】
杨校老师课堂之Servlet的重构为BaseServlet的步骤【内含视频讲解】
35 0
|
6月前
|
分布式计算 数据可视化 Hadoop
杨校老师课堂之Hadoop环境搭建(二)
杨校老师课堂之Hadoop环境搭建(二)
31 0
|
6月前
|
分布式计算 Oracle Hadoop
杨校老师课堂之Hadoop环境搭建(一)
杨校老师课堂之Hadoop环境搭建(一)
51 0

热门文章

最新文章