IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java读取Excel -> 正文阅读

[Java知识库]Java读取Excel

网上读取excel的很多方法,我找了一个:java 读取excel数据_会飞的猪biubiu的博客-CSDN博客_java读取excel

它用的

但是呢我发现:

?我这个一直都报错,怎么都解决不了,所以我就把中间的注释了,这就没有什么影响了

根据poi导出excel,poi3.8包中没有org.apache.poi.ss.usermodel.CellType;_P_Doraemon的博客-CSDN博客_import org.apache.poi.ss.usermodel.cell

才知道其他版本修改了(高版本的poi导入的包和方法的名称和低版本的有一些区别,):

?
?import org.apache.poi.ss.usermodel.CellType
变为
import org.apache.poi.ss.usermodel.Cell;

?

然后:

cell.setCellType(CellType.STRING);
变为
cell.setCellType(Cell.CELL_TYPE_STRING);

第一步:

使用maven导入:


 <poi.version>4.1.2</poi.version>
        
        <!-- excel工具 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>${poi.version}</version>

或者使用Gradle

// https://mvnrepository.com/artifact/org.apache.poi/poi
	compile('org.apache.poi:poi-ooxml:3.9')

还可以导入jar方式,可以自行下载

如果你搜的是jxl的方法,如:GitHub - loaLakers/ReadExcel: java读取excel文件

那你就要导入它的方法,这个我试了不行,我只有自己手动导入,这个jar文件就在这个gihub下载里面?

如果你还不会IDE导入jar包就参考我博客有:https://blog.csdn.net/bbs11007/article/details/124696263?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22124696263%22%2C%22source%22%3A%22bbs11007%22%7D&ctrtid=3UChB

第二步:

单独写方法 ReadExcel .class:

package com.ngame.utils.excel;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.*;

//import org.apache.poi.ss.usermodel.CellType;//
import org.apache.poi.ss.usermodel.Cell;//上面的CellType修改
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class ReadExcel {
//    public static List<String> list = new ArrayList<String>();

    public List readXSLX(File file) throws Exception {//支持XLSX的
        if (!file.exists()){
            throw new Exception("文件不存在!");
        }
        List<String> listline = new ArrayList<>();
        try {

            InputStream in = new FileInputStream(file);
            XSSFWorkbook sheets = new XSSFWorkbook(in);// 读取整个Excel
            XSSFSheet sheetAt = sheets.getSheetAt(0);// 获取第一个表单Sheet
            XSSFRow titleRow = sheetAt.getRow(0);//默认第一行为标题行,i = 0
            // 循环获取每一行数据
            for (int i = 1; i < sheetAt.getPhysicalNumberOfRows(); i++) {
                XSSFRow row = sheetAt.getRow(i);
                // 读取每一格内容
                StringBuilder sb = new StringBuilder();
                for (int index = 0; index < row.getPhysicalNumberOfCells(); index++) {
                    XSSFCell titleCell = titleRow.getCell(index);
                    XSSFCell cell = row.getCell(index);
                   System.out.println("标题:"+titleCell);
                   System.out.println("内容:"+cell);
//                        cell.setCellType(CellType.STRING);
                          cell.setCellType(Cell.CELL_TYPE_STRING);//上面那行修改 
                        if (cell.getStringCellValue().equals("")) {
                           continue;
                        }

                    sb.append(cell+"|");//把表格内容放进去,没有标题
                }
              System.out.println("每行:"+i + "|" + sb);
              listline.add(i + "|" + sb);//要返回的list
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return listline;//返回list
    }

    /*public List readXSL(File file) throws Exception {//支持xls的
        if (!file.exists()){
            throw new Exception("文件不存在!");
        }
        List<String> listline = new ArrayList<>();
        try {

            InputStream in = new FileInputStream(file);
            XSSFWorkbook sheets = new XSSFWorkbook(in);// 读取整个Excel
            XSSFSheet sheetAt = sheets.getSheetAt(0);// 获取第一个表单Sheet
            XSSFRow titleRow = sheetAt.getRow(0);//默认第一行为标题行,i = 0
            // 循环获取每一行数据
            for (int i = 1; i < sheetAt.getPhysicalNumberOfRows(); i++) {
                XSSFRow row = sheetAt.getRow(i);
                // 读取每一格内容
                StringBuilder sb = new StringBuilder();
                for (int index = 0; index < row.getPhysicalNumberOfCells(); index++) {
                    XSSFCell titleCell = titleRow.getCell(index);
                    XSSFCell cell = row.getCell(index);
//                    System.out.println("biaoti:"+titleCell);
//                    System.out.println("neirong:"+cell);
//                        cell.setCellType(CellType.STRING);
//                        if (cell.getStringCellValue().equals("")) {
//                            continue;
//                        }
                    sb.append(cell+"|");
                }
//                System.out.println("每行:"+i + "|" + sb);
                listline.add(i + "|" + sb);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return listline;
    }*/


}

注意:

代码中判断的是XLSX的excel,要xls要修改下?

第三步:最后就可以直接调用了

这是main主方法或者需要调用的地方:

import com.excel.uitl.ReadExcel //引用方法

main(){
     File file1 = new File("D:\\excel\\test.xlsx");
     ReadExcel readExcel = new ReadExcel();
     System.out.println("输出的表格内容:"+readExcel.readXSLX(file1));


}
 

输出的表格内容:[1|100|张三|28岁|本科,2|101|李四|大专,3|102|王五|硕士]

输出的内容不是你想要的,你可以根据自己的需要去修改。在方法里。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:38:35  更:2022-05-13 11:40:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:22:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码