今天用eos做完公司所有报表。eos的报表功能确实很强大。三下五去二就很容易的做出一个很完美的报表(包括xls格式,html格式,applat格式)。但是eos报表功能屏蔽了太多的技术细节。对于一个热爱技术的人来说,看不到底层的技术细节真有点遗憾。下午闲来无事就去网上逛了一圈。发现开源的poi操纵excle非常方便,于是去官方网站上下了这个包。仔细的研究了一下。也顺便做了个列子。这个例子展示了从数据里面取出数据然后写入excle文件。
连接数据库类:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
public class DBConnection {private String classString="oracle.jdbc.driver.OracleDriver";private String username="hehe";private String password="hehe";private String url="java:oracle:thin:@192.168.1.17:1521:test";private Connection con=null;public Connection getConnection(){ try { Class.forName(classString); con=DriverManager.getConnection(url,username,password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con;}
}
操纵excel类:
import java.io.FileOutputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;
import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class CreateXL {private static String xlsFile="f:\\test.xls";//取得结果集public static ResultSet getResult(String sql){ DBConnection db=new DBConnection(); Connection con=db.getConnection(); ResultSet rs=null; Statement st=null; try { st=con.createStatement(); rs=st.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs;}//向excle写入数据public static void toxls(ResultSet rs)throws Exception{ HSSFWorkbook workbook=new HSSFWorkbook(); HSSFSheet sheet=workbook.createSheet("结果数据"); HSSFRow row=sheet.createRow(0); HSSFCell cell; ResultSetMetaData smdata=rs.getMetaData(); int nColum=smdata.getColumnCount(); for(int i=1;i<nColum;i++){ cell=row.createCell(i-1); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString(smdata.getColumnLabel(i)));//写入列标号 } int intRow=1; while(rs.next()){ row=sheet.createRow(intRow); for(int j=1;j<nColum;j++){ cell=row.createCell(j-1); cell.setCellType(HSSFCell.CELL_TYPE_STRING); String result=""; Object obj=rs.getObject(j); if(obj!=null){ result=obj.toString(); } cell.setCellValue(new HSSFRichTextString(result));//写入数据 } intRow++; } FileOutputStream fout=new FileOutputStream(xlsFile); workbook.write(fout); fout.flush(); fout.close();}public static void main(String args[]) throws Exception{ toxls(getResult("select * from user_"));}
}
相关资源:大数据Excel通过POI导入数据库通用设计方案