使用写一个读取xlsb格式,并输出数据的工具类
时间: 2024-03-06 17:48:13 浏览: 14
以下是一个可以读取XLSB文件并输出数据的Java工具类,使用了Apache POI库:
```java
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class XLSBReader {
private File file;
private Workbook workbook;
private Sheet sheet;
public XLSBReader(String filePath) throws IOException {
this.file = new File(filePath);
FileInputStream fileInputStream = new FileInputStream(file);
this.workbook = WorkbookFactory.create(fileInputStream);
this.sheet = workbook.getSheetAt(0);
}
public List<String[]> read() {
List<String[]> data = new ArrayList<>();
for (Row row : sheet) {
String[] rowData = new String[row.getLastCellNum()];
for (Cell cell : row) {
int cellIndex = cell.getColumnIndex();
switch (cell.getCellType()) {
case BOOLEAN:
rowData[cellIndex] = String.valueOf(cell.getBooleanCellValue());
break;
case NUMERIC:
rowData[cellIndex] = String.valueOf(cell.getNumericCellValue());
break;
case STRING:
rowData[cellIndex] = cell.getStringCellValue();
break;
case BLANK:
rowData[cellIndex] = "";
break;
default:
rowData[cellIndex] = "";
break;
}
}
data.add(rowData);
}
return data;
}
public void close() throws IOException {
this.workbook.close();
}
}
```
这个工具类的构造函数需要传入要读取的XLSB文件的路径,read方法将返回一个List,其中每个元素都是一个String数组,表示一行数据。close方法用于关闭Workbook对象和相关资源。
以下是一个使用这个工具类读取XLSB文件并输出数据的示例:
```java
public class Demo {
public static void main(String[] args) {
try {
XLSBReader reader = new XLSBReader("example.xlsb");
List<String[]> data = reader.read();
for (String[] row : data) {
for (String cell : row) {
System.out.print(cell + "\t");
}
System.out.println();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个XLSBReader对象,并将要读取的XLSB文件的路径传递给它。然后,我们使用read方法读取XLSB文件中的数据,并将其存储在data变量中。最后,我们遍历data变量,并将其输出到控制台。注意,这里使用了一个嵌套循环,以便逐行逐列输出数据。