介绍
Jakarta POI 是一套用于访问微软格式文档的Java API。Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。官方主页http://poi.apache.org/index.html,API文档http://poi.apache.org/apidocs/index.html
实现
已经在代码中加入了完整的注释。
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExcelOperate { public static void main(String[] args) { // 创建Excel表格 createExcel(getStudent()); // 读取Excel表格 Listlist = readExcel(); System.out.println(list.toString()); } /** * 初始化数据 * * @return 数据 */ private static List getStudent() { List list = new ArrayList (); Student student1 = new Student("小明", 8, "二年级"); Student student2 = new Student("小光", 9, "三年级"); Student student3 = new Student("小花", 10, "四年级"); list.add(student1); list.add(student2); list.add(student3); return list; } /** * 创建Excel * * @param list * 数据 */ private static void createExcel(List list) { // 创建一个Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个工作表 HSSFSheet sheet = workbook.createSheet("学生表一"); // 添加表头行 HSSFRow hssfRow = sheet.createRow(0); // 设置单元格格式居中 HSSFCellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 添加表头内容 HSSFCell headCell = hssfRow.createCell(0); headCell.setCellValue("姓名"); headCell.setCellStyle(cellStyle); headCell = hssfRow.createCell(1); headCell.setCellValue("年龄"); headCell.setCellStyle(cellStyle); headCell = hssfRow.createCell(2); headCell.setCellValue("年级"); headCell.setCellStyle(cellStyle); // 添加数据内容 for (int i = 0; i readExcel() { List list = new ArrayList (); HSSFWorkbook workbook = null; try { // 读取Excel文件 InputStream inputStream = new FileInputStream("D:/students.xls"); workbook = new HSSFWorkbook(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } // 循环工作表 for (int numSheet = 0; numSheet
附上Student类的代码
public class Student { private String name; private int age; private String grade; public Student() { } public Student(String name, int age, String grade) { super(); this.name = name; this.age = age; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", grade=" + grade + "]"; } }
测试结果
导出的Excel表格
students
打印读取的Excel数据
[Student [name=小明, age=8, grade=二年级], Student [name=小光, age=9, grade=三年级], Student [name=小花, age=10, grade=四年级]]
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。