1、准备Jar包
下载地址:https://archive.apache.org/dist/poi/release/src/
Maven:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
Java 导出数据到Excl表:
public static void Write() {
// 设置数据
List<Student> list = new LinkedList<Student>();
for (int i = 1; i <= 10; i++) {
Student student = new Student(i, "同学" + i, "女",
new Random().nextInt(20));
list.add(student);
}
// 得到Excel工作簿对象
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建Excel工作表对象
HSSFSheet sheet = workbook.createSheet("学生信息");
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 设置表格对齐样式
HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置字体
HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 15);
font.setFontName("行书");
// 设置列宽
// sheet.setColumnWidth(0, 4000);
// sheet.setColumnWidth(1, 4000);
// sheet.setColumnWidth(2, 8000);
// sheet.setColumnWidth(3, 8000);
// 生成表头
HSSFCell cell = row.createCell(0);
cell.setCellValue("学号");
cell.setCellStyle(style);
cell = row.createCell(1);
cell.setCellValue("姓名");
cell.setCellStyle(style);
cell = row.createCell(2);
cell.setCellValue("性别");
cell.setCellStyle(style);
cell = row.createCell(3);
cell.setCellValue("年龄");
cell.setCellStyle(style);
// 写入数据
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 1);
Student s = (Student) list.get(i);
row.createCell(0).setCellValue(s.getId());
row.createCell(1).setCellValue(s.getName());
row.createCell(2).setCellValue(s.getSex());
row.createCell(3).setCellValue(s.getAge());
}
// 将表格写入student.xls
String filePath = "student.xls";
try {
FileOutputStream fout = new FileOutputStream(filePath);
workbook.write(fout);
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Excl表导入数据到Java :
public static void Read() throws Exception {
// 1.得到Excel常用对象
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
"student.xls"));
// 2.得到Excel工作簿对象
HSSFWorkbook wb = new HSSFWorkbook(fs);
// 3.得到Excel工作表对象
HSSFSheet sheet = wb.getSheetAt(0);
// 总行数
int trLength = sheet.getLastRowNum();
// 4.得到Excel工作表的行
HSSFRow row = sheet.getRow(0);
// 总列数
int tdLength = row.getLastCellNum();
// 5.得到Excel工作表指定行的单元格
HSSFCell cell = row.getCell(1);
// 6.得到单元格样式
HSSFCellStyle cellStyle = cell.getCellStyle();
for (int i = 0; i < trLength; i++) {
// 得到Excel工作表的行
HSSFRow row1 = sheet.getRow(i);
for (int j = 0; j < tdLength; j++) {
// 得到Excel工作表指定行的单元格
HSSFCell cell1 = row1.getCell(j);
/**
* 为了处理:Excel异常Cannot get a text value from a numeric cell
* 将所有列中的内容都设置成String类型格式
*/
if (cell1 != null) {
cell1.setCellType(Cell.CELL_TYPE_STRING);
}
// 获得每一列中的值
System.out.print(cell1.getStringCellValue() + "\t\t\t");
}
System.out.println();
}
}