利用Java提取excel内容

1、准备POI.jar

Apache POI官方下载网址:http://poi.apache.org/download.html
下载红色方框压缩包

下载完后解压,解压后文件夹如图

Jar包

在IDEA中导入包

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、使用POI包进行excel提取

1、创建文件流和Workbook

方式一:

		//If using HSSFWorkbook or XSSFWorkbook directly,
	  // you should generally go through POIFSFileSystem or OPCPackage,
	// to have full control of the lifecycle 

// HSSFWorkbook, File
POIFSFileSystem fs = new POIFSFileSystem(new File("file.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs.getRoot(), true);
....
fs.close();
// HSSFWorkbook, InputStream, needs more memory
POIFSFileSystem fs = new POIFSFileSystem(myInputStream);
HSSFWorkbook wb = new HSSFWorkbook(fs.getRoot(), true);
// XSSFWorkbook, File
OPCPackage pkg = OPCPackage.open(new File("file.xlsx"));
XSSFWorkbook wb = new XSSFWorkbook(pkg);
....
pkg.close();
// XSSFWorkbook, InputStream, needs more memory
OPCPackage pkg = OPCPackage.open(myInputStream);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
....
pkg.close();

方式二:

// Use a file
Workbook wb = WorkbookFactory.create(new File("MyExcel.xls"));

// Use an InputStream, needs more memory
Workbook wb = WorkbookFactory.create(new FileInputStream("MyExcel.xlsx"));

方法一需要获得相应读取权限,要注意结束时关闭字节流;(.xls和.xlsx要用不同的方法)
方式二可直接用文件方式获取对应excel文件(不用区分.xls和.xlsx)

2、选择工作表
Sheet sheet = wb.getSheetAt(0);	//0代表excel中第一张表,1为第二张
3、选择行
Row row = sheet.getRow(0);
4、选择单元格
Cell cell = row.getCell(0);
5、获取单元格内容

先判断单元格内容类型,再进行获取

switch(cell.getCellType()){
	case STRING:
   		 System.out.print(cell.getStringCellValue()+"\t");
         break; 
    case NUMERIC:
         System.out.print(cell.getNumericCellValue()+"\t");
         break;
    default:
     	 System.out.print("\t");
 }

3、例子

import org.apache.poi.ss.usermodel.*;
import java.io.File;

public class test_baseinfo {
    public static void main(String[] args) {
        // 文档路径
        String path = "D:\\Person_files\\MyCode\\javacode\\Test_excel\\workbook.xlsx";
        readExcel(path);
    }
    public static void readExcel(String path){
        try{
            //连接工作表
            Workbook book = WorkbookFactory.create(new File(path));
            Sheet sheet = book.getSheetAt(0);
            //遍历表
            for(Row row : sheet){
                for(Cell cell : row){               
                     /判断单元格类型
                    switch(cell.getCellType()){
                        case STRING:
                            System.out.print(cell.getStringCellValue()+"\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue()+"\t");
                            break;
                        default:
                            System.out.print("\t");
                    }
                }
                System.out.println();
            }

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值