Java批量导入导出文件的实例分享
本文将介绍如何在Java中批量导入和导出文件,支持xls和xlsx格式的文件。采用了Apache的POI库。
需求分析
我们需要完成的功能是实现Java程序批量导入和导出xls/xlsx文件。
导入功能要求:
- 支持xls和xlsx格式的文件;
- 将文件中的数据读取到Java程序中,进行处理。
导出功能要求:
- 支持xls和xlsx格式的文件;
- 将Java程序中的数据导出到文件中。
导入文件
使用POI库可以很方便地实现Excel文件的读取和写入。以下示例将演示如何读取Excel文件中的数据。
// 导入所需的包
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
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.xssf.usermodel.XSSFWorkbook;
/**
* 读取Excel文件中的数据
*/
public class ExcelReadExample {
public static void main(String[] args) {
try {
// 读取Excel文件
String fileName = "data.xls";
File file = new File(fileName);
FileInputStream inputStream = new FileInputStream(file);
// 判断文件类型,创建不同的工作簿
boolean isXlsx = fileName.endsWith("xlsx");
XSSFWorkbook xssfWorkbook = null;
HSSFWorkbook hssfWorkbook = null;
if (isXlsx) {
xssfWorkbook = new XSSFWorkbook(inputStream);
} else {
hssfWorkbook = new HSSFWorkbook(inputStream);
}
// 获取Excel文件中的第一个Sheet
Sheet sheet = null;
if (isXlsx) {
sheet = xssfWorkbook.getSheetAt(0);
} else {
sheet = hssfWorkbook.getSheetAt(0);
}
if (sheet == null) {
System.out.println("Sheet not found");
return;
}
// 遍历Sheet中的所有行和单元格
for (Row row : sheet) {
for (Cell cell : row) {
// 根据单元格类型获取单元格中的数据
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue());
break;
default:
System.out.print(" ");
}
System.out.print("\t");
}
System.out.println();
}
// 关闭文件输入流
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在以上示例中,我们使用了FileInputStream来读取Excel文件,根据文件类型创建不同的工作簿,然后遍历工作簿中的所有行和单元格,根据单元格类型获取单元格中的数据。
导出文件
以下示例将演示如何将Java程序中的数据导出到Excel文件中。
// 导入所需的包
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
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.xssf.usermodel.XSSFWorkbook;
/**
* 将数据写入Excel文件
*/
public class ExcelWriteExample {
public static void main(String[] args) {
try {
// 创建工作簿和Sheet
String fileName = "data.xls";
boolean isXlsx = fileName.endsWith("xlsx");
XSSFWorkbook xssfWorkbook = null;
HSSFWorkbook hssfWorkbook = null;
if (isXlsx) {
xssfWorkbook = new XSSFWorkbook();
} else {
hssfWorkbook = new HSSFWorkbook();
}
Sheet sheet = isXlsx ? xssfWorkbook.createSheet() : hssfWorkbook.createSheet();
// 创建数据行和单元格
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Employee Name");
cell = row.createCell(1);
cell.setCellValue("Salary");
row = sheet.createRow(1);
cell = row.createCell(0);
cell.setCellValue("Tom");
cell = row.createCell(1);
cell.setCellValue(50000);
row = sheet.createRow(2);
cell = row.createCell(0);
cell.setCellValue("Jerry");
cell = row.createCell(1);
cell.setCellValue(60000);
// 保存Excel文件
FileOutputStream outputStream = new FileOutputStream(fileName);
if (isXlsx) {
xssfWorkbook.write(outputStream);
} else {
hssfWorkbook.write(outputStream);
}
outputStream.close();
System.out.println("File saved!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在以上示例中,我们创建了工作簿和Sheet,然后创建数据行和单元格,最后保存Excel文件。
总结
本文介绍了如何在Java程序中批量导入和导出Excel文件,采用了Apache的POI库。通过以上示例,我们学习了如何读取Excel文件中的数据,以及如何将Java程序中的数据导出到Excel文件中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java批量导入导出文件的实例分享(兼容xls,xlsx) - Python技术站