读取指定文件夹下全部得xlsx文件 ,并读取xlsx每一行的内容的java源码
时间: 2023-06-17 20:09:00 浏览: 153
java代码-使用java解决读取指定文件夹下的所有文件名称的源代码
下面是基于 Apache POI 库的 Java 代码示例,可以读取指定文件夹下所有的 xlsx 文件,并逐行读取每个文件的内容:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadXlsxFiles {
public static void main(String[] args) throws IOException {
// 指定文件夹路径
String folderPath = "/path/to/folder";
// 获取文件夹下所有 xlsx 文件
List<File> files = getXlsxFiles(folderPath);
// 逐个读取文件内容
for (File file : files) {
System.out.println("Reading file: " + file.getName());
List<String[]> rows = readXlsxFile(file);
// 输出每一行内容
for (String[] row : rows) {
for (String cell : row) {
System.out.print(cell + "\t");
}
System.out.println();
}
}
}
/**
* 获取指定文件夹下所有 xlsx 文件
*/
public static List<File> getXlsxFiles(String folderPath) {
File folder = new File(folderPath);
List<File> files = new ArrayList<>();
for (File file : folder.listFiles()) {
if (file.isFile() && file.getName().endsWith(".xlsx")) {
files.add(file);
}
}
return files;
}
/**
* 读取 xlsx 文件内容
*/
public static List<String[]> readXlsxFile(File file) throws IOException {
List<String[]> rows = new ArrayList<>();
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
String[] rowData = new String[row.getLastCellNum()];
for (int i = 0; i < row.getLastCellNum(); i++) {
Cell cell = row.getCell(i);
if (cell != null) {
rowData[i] = cell.toString();
}
}
rows.add(rowData);
}
workbook.close();
fis.close();
return rows;
}
}
```
在上面的代码中,`getXlsxFiles` 方法用于获取指定文件夹下所有的 xlsx 文件,而 `readXlsxFile` 方法则用于读取一个 xlsx 文件的内容,返回一个字符串数组列表,其中每个字符串数组代表一个行的数据。
阅读全文