Java导入Excel数据方法

来源:互联网 发布:sql 多个case when 编辑:程序博客网 时间:2024/06/05 22:22

今天早上朋友让我帮她算一个数学建模中的数据,因为我不会用matlab,所以使用Java来解决这个问题。《Thinking in java》还没有看到后面I/O系统,所以借鉴了一下其他博主的内容。

Apache POI

导入excel数据,需要实现导入的包。
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
下面是所需的包内容:

这里写图片描述

读取excel文件

import java.io.FileInputStream;import java.io.IOException;import java.util.ArrayList;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class getData {    @SuppressWarnings("deprecation")    public static void getDataFromExcel(String filePath) {        FileInputStream fis = null;        Workbook wookbook = null;        try {            fis = new FileInputStream(filePath);        } catch (Exception e) {            e.printStackTrace();        }        try {            // 2003版本的excel,用.xls结尾            wookbook = new HSSFWorkbook(fis);// 得到工作簿        } catch (Exception ex) {            try {                // 这里需要重新获取流对象,因为前面的异常导致了流的关闭                fis = new FileInputStream(filePath);                // 2007版本的excel,用.xlsx结尾                wookbook = new XSSFWorkbook(filePath);// 得到工作簿            } catch (IOException e) {                e.printStackTrace();            }        }        Sheet sheet = wookbook.getSheetAt(0);// 得到一个工作表        int totalRowNum = sheet.getLastRowNum();// 获得数据的总行数        double Lat ;//纬度        double Lng ;//经度        // 获得所有数据        for (int i = 1; i <= totalRowNum; i++) {            // 获得第i行对象            Row row = sheet.getRow(i);            // 获得纬度            Cell cell = row.getCell(0);            Lat = cell.getNumericCellValue();            // 获得经度            cell = row.getCell(1);            Lng =  cell.getNumericCellValue();            System.out.println("经度:" + Lng + ",纬度:" + Lat);        }    }    public static void main(String[] args) {        getDataFromExcel("E://2.xlsx");    }}

以下是源数据:
这里写图片描述

Output:
这里写图片描述

原创粉丝点击