您的位置:首页 > 编程语言 > Java开发

Java导入Excel数据方法

2017-09-16 19:45 513 查看
今天早上朋友让我帮她算一个数学建模中的数据,因为我不会用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:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: