java使用easypoi poi获取excel某单元格的值

硅谷探秘者 算法基础 1452 0 0

Pom依赖

 <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.0.0</version>
        </dependency>

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.0.0</version>
        </dependency>

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.0.0</version>
        </dependency>

控制层代码

import org.apache.poi.ss.usermodel.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;

@RestController
public class TestController {

    @GetMapping("test")
    public void test(MultipartFile file) throws Exception{
        //创建一个工作铺
        Workbook workbook = WorkbookFactory.create(file.getBytes());
        //获取第一个excel表
        Sheet sheet = workbook.getSheetAt(0);
        //获取excel的第二行(注意下表从0开始,0代表第一行)
        Row row = sheet.getRow(1);
        //获取excel的第二列(注意下表从0开始,0代表第一列)
        Cell testCell=row.getCell(1);

        //第二行第二列的数据
        String test = getXCellVal(testCell);
        System.out.println(test);

        //第二行第六列的数据
        Cell test2Cell=row.getCell(5);
        String test2 = getXCellVal(test2Cell);
        System.out.println(test2);

        return;
    }

    /**
     * 根据单元格的格式 获取单元格的内容
     * @param cell
     * @return
     */
    private static String getXCellVal(Cell cell) {
        DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
        DecimalFormat df = new DecimalFormat("0.0000");
        String val = "";
        switch (cell.getCellType()) {
            case NUMERIC:
                if (DateUtil.isCellDateFormatted(cell)) {
                    val = fmt.format(cell.getDateCellValue()); //日期型
                } else {
                    val = df.format(cell.getNumericCellValue()); //数字型
                    // 去掉多余的0,如最后一位是.则去掉
                    val = val.replaceAll("0+?$", "").replaceAll("[.]$","");
                }
                break;
            case STRING: //文本类型
                val = cell.getStringCellValue();
                break;
            case BOOLEAN: //布尔型
                val = String.valueOf(cell.getBooleanCellValue());
                break;
            case BLANK: //空白
                val = cell.getStringCellValue();
                break;
            case ERROR: //错误
                val = "";
                break;
            case FORMULA: //公式
                try {
                    val = String.valueOf(cell.getStringCellValue());
                } catch (IllegalStateException e) {
                    val = String.valueOf(cell.getNumericCellValue());
                }
                break;
            default:
                val = cell.getRichStringCellValue() == null ? null : cell.getRichStringCellValue().toString();
        }
        return val;
    }
}
猜你喜欢
weblog 610 java使easypoi批量导入excel实体类:importcn.afterturn.easypoi.excel.annotation.Excel
weblog 1650 java使easypoi导出并下载excel文件简导出测试如图:一、pom文件dependencygroupIdcn.afterturn/groupIdartifactIdeasypoi
weblog 2829 java使easypoi导出excel时进行替换如导出性别:数据库中储存是数字,1代表男,2代表女。导出时候需要是汉字。在实体类中使@Excel注解。 @Excel(name="性别
算法基础 902 什么是jxlsjxls是一个简、轻量级excel导出库,使特定标记在excel模板文件中来定义输出式和布局。其实java中成熟excel导出工具有pol、jxl,但他们都是使java
weblog 1236 java使原生jdbc连接数据库数据或执行sql语句(mysql) publicvoidtest2(){ try{ //加载MySql驱动类 Class.forName
数据结构与算法 751 java使欧几里得算法计算比例方法 publicstaticvoidmain(String[]args){ System.out.println(bili(2,6
java基础 2193 一、系统临时文件目录二、java系统属性有哪些File.createTempFile创建临时文件一、系统临时文件目录通过java系统属性Stringtmpdir
算法基础 1182 如何使jslx请参考之前写文章:http://www.jiajiajia.club/blog/artical/76vv9kuy36j4/454添加配置
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7 2021年04月  4 2021年05月  4 2021年06月  1 2021年07月  7 2021年08月  2 2021年09月  8 2021年10月  9 2021年11月  16 2021年12月  14 2022年01月  7 2022年05月  1 2022年08月  3 2022年09月  2
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础
目录
余生别太较劲,放过自己 才会幸福。