目录
POI简介
Apache POI是的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能
HSSF概况
HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。
HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。
POI EXCEL文档结构类
HSSFWorkbook:excel的文档对象 HSSFSheet:excel的sheet HSSFRow:excel的行 HSSFCell:excel的单元格 HSSFFont:excel字体 HSSFName:名称 HSSFDataFormat:日期格式 HSSFHeader:sheet头 HSSFFooter:sheet尾 HSSFCellStyle:cell样式 HSSFDateUtil:日期 HSSFPrintSetup:打印 HSSFErrorConstants:错误信息表
EXCEL常用使用案例
前期准备
需要的jar依赖
pinyin4j-2.5.1.jar
poi-3.17.jar
baseDao
package com.zking.util;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zking.util.DBAccess;
import com.zking.util.PageBean;
/**
* 所有Dao层的父类
* BookDao
* UserDao
* OrderDao
* ...
* @author Administrator
*
* @param <T>
*/
public class BaseDao<T> {
/**
* 通用的增删改方法
* @param book
* @throws Exception
*/
public void executeUpdate(String sql, T t, String[] attrs) throws Exception {
// String[] attrs = new String[] {"bid", "bname", "price"};
Connection con = DBAccess.getConnection();
PreparedStatement pst = con.prepareStatement(sql);
// pst.setObject(1, book.getBid());
// pst.setObject(2, book.getBname());
// pst.setObject(3, book.getPrice());
/*
* 思路:
* 1.从传进来的t中读取属性值
* 2.往预定义对象中设置了值
*
* t->book
* f->bid
*/
for (int i = 0; i < attrs.length; i++) {
Field f = t.getClass().getDeclaredField(attrs[i]);
f.setAccessible(true);
pst.setObject(i+1, f.get(t));
}
pst.executeUpdate();
}
/**
* 通用分页查询
* @param sql
* @param clz
* @return
* @throws Exception
*/
public List<T> executeQuery(String sql,Class<T> clz,PageBean pageBean) throws Exception{
List<T> list = new ArrayList<T>();
Connection con = DBAccess.getConnection();;
PreparedStatement pst = null;
ResultSet rs = null;
/*
* 是否需要分页?
* 无需分页(项目中的下拉框,查询条件教员下拉框,无须分页)
* 必须分页(项目中列表类需求、订单列表、商品列表、学生列表...)
*/
if(pageBean != null && pageBean.isPagination()) {
// 必须分页(列表需求)