Java不使用poi读取excel数据方法
时间: 2024-10-23 10:09:08 浏览: 18
Java如何利用POI读取Excel行数
Java中,除了Apache POI库外,还有一些其他的库可以用于读取Excel文件,比如JExcelAPI、OpenCSV和Unirest。以下是使用这些库读取Excel数据的一些简介:
1. JExcelAPI: 这是一个简单易用的库,但它已经不再维护,建议使用POI替代。如果你还在使用它,可以通过`jxl.Workbook`类加载工作簿并获取sheet,然后通过`Row`和`Cell`类获取数据。
```java
import jxl.Workbook;
Workbook workbook = Workbook.getWorkbook(new File("yourfile.xlsx"));
Sheet sheet = workbook.getSheetAt(0); // 获取第一个sheet
for (int i = 0; i < sheet.getRowCount(); i++) {
Row row = sheet.getRow(i);
for (int j = 0; j < row.getLastColumn(); j++) {
Cell cell = row.getCell(j);
String data = cell.getContents();
// 处理数据
}
}
```
2. OpenCSV: 主要是用于CSV文件,但也可以处理Excel文件。首先需要转换为CSV,然后使用`CSVReader`读取数据。
```java
import com.opencsv.CSVReader;
String[] line = new CSVReader(new FileReader("yourfile.xlsx")).readNext();
while (line != null) {
// 处理每一行数据
line = csvReader.readNext();
}
```
3. Unirest + Apache POI: 如果你想通过网络请求的方式读取在线Excel,可以先下载到本地再处理。Unirest提供HTTP操作,配合POI读取。
```java
import org.apache.poi.ss.usermodel.*;
import io.unirest.http.HttpResponse;
HttpResponse<InputStream> response = Unirest.get("http://example.com/file.xlsx").asBinary();
try (FileOutputStream out = new FileOutputStream("temp.xlsx")) {
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = response.getBody().asStream().read(buffer)) > -1) {
out.write(buffer, 0, bytesRead);
}
} finally {
Workbook workbook = WorkbookFactory.create(new FileInputStream("temp.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
// 数据处理
}
```
阅读全文