欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

分别导入.xls和.xlsx后缀的excel文件

程序员文章站 2022-05-17 13:59:29
...

Java导入excel文件,暂时找到两种方法,分别对应.xls和.xlsx文件。
1,首先创建一个user类,后面会用到。

package importMethod;

import java.io.Serializable;

/**
 * 用户类
 */
public class User implements Serializable{
    private static final long serialVersionUID = 5430875702565190652L;
    private String name; // 姓名
    private String phoneNo; // 电话
    private String address; // 地址
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhoneNo() {
        return phoneNo;
    }
    public void setPhoneNo(String phoneNo) {
        this.phoneNo = phoneNo;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "User [姓名=" + name + ", 电话=" + phoneNo + ", 地址=" + address + "]";
    }
}

2,备用的excel数据。
分别导入.xls和.xlsx后缀的excel文件

3,导入.xls后缀的excel文件
首先要导入“jxl,jar”包,百度下载此包。

import java.io.File;

import jxl.Sheet;
import jxl.Workbook;

/**
 * 导入.xls后缀的excel文件
 */
public class ImportXlsFile {

    public static void main(String[] args){
        // 要读取的excel文件的绝对路径
        String url = "C:\\Users\\twf\\Desktop\\user (1).xls"; 
        Workbook workbook = null;
        try {
            workbook = Workbook.getWorkbook(new File(url));
            // 获取excel对象
            // 获取第一个sheet页(有可能一个excel有多个选项卡,即多个excel文件,咱们取第一个文件)
            Sheet sheet = workbook.getSheet(0); 
            // 循环excel文件中的每一行
            for (int i = 1; i < sheet.getRows(); i++) { // i从1开始,表示不读取表头
                // 获得单元格的对象,然后获取单元格的值,并设置到对象中
                User user = new User();
                user.setName(sheet.getCell(0, i).getContents());
                user.setPhoneNo(sheet.getCell(1, i).getContents());
                user.setAddress(sheet.getCell(2, i).getContents());
                System.out.println(user.toString());
            }
        }  catch (Exception e) {
            e.printStackTrace();
        } finally {
            workbook.close(); // 关闭流
        }
    }
}

4,导入.xlsx后缀的excel文件
首先导入poi依赖包,笔者从网上下载的包,解压后如下:
分别导入.xls和.xlsx后缀的excel文件
将这些依赖包全部导入项目。

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * 导入.xlsx的excel文件
 */
public class ImportXlsxFile {
    public static void main(String[] args) {
        String url = "C:\\Users\\twf\\Desktop\\user.xlsx";
        XSSFWorkbook xssfWorkbook = null;
        try {
            InputStream is = new FileInputStream(new File(url));
            xssfWorkbook = new XSSFWorkbook(is);
//          int numSheet = xssfWorkbook.getNumberOfSheets(); // 获取选项卡的个数
            XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0); // 获取第一个sheet选项卡
            // 遍历该sheet中的每一行
            for (int i = 1; i <= xssfSheet.getLastRowNum(); i++) {
                XSSFRow xssfRow = xssfSheet.getRow(i); // 获取其中一行
                if (xssfRow == null) {
                    continue;
                }
                // 读取数据
                User user = new User();
                user.setName(xssfRow.getCell(0).toString());
                user.setPhoneNo(xssfRow.getCell(1).toString());
                user.setAddress(xssfRow.getCell(2).toString());
                System.out.println(user.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5,输出

User [姓名=胡歌, 电话=13437878888, 地址=广州]
User [姓名=赵丽颖, 电话=13437899999, 地址=从化]
User [姓名=许嵩, 电话=13437877777, 地址=佛山]