隨筆-295  評論-26  文章-1  trackbacks-0

          ? Session session = HibernateUtil.getSession();
          ??????????? Criteria crit = session.createCriteria(entityClass);
          ??????????? crit.add(Restrictions.eq("orgTypeId", orgId));?
          ??????????? crit.add(Restrictions.eq("StructID", strTypeid));
          ??????????? List entities = crit.list();
          ??????????? populate(sheet, entities);

          ? Hibernate 條件查詢

          /*
          ?* ExportManager.java
          ?*
          ?* Created on 2006年7月30日, 下午2:40
          ?*
          ?* To change this template, choose Tools | Template Manager
          ?* and open the template in the editor.
          ?*/

          package path.system.manager;

          import java.io.*;
          import java.util.List;
          import java.util.Date;
          import java.sql.Timestamp;
          import java.lang.reflect.*;
          import java.math.BigDecimal;

          import jxl.*;
          import jxl.write.*;
          import org.hibernate.Session;
          import org.hibernate.Query;
          import org.hibernate.Criteria;
          import org.hibernate.criterion.Restrictions;

          import path.system.manager.HibernateUtil;
          import path.util.DoNumber;

          /**
          ?*
          ?* @author zhaoming
          ?*/
          public class ExportManager {
          ???
          ??? private Class entityClass;
          ??? private Field[] fields;
          ??? private Class[] fieldTypes;
          ???
          ??? private static WritableCellFormat integerFormat = new WritableCellFormat(NumberFormats.INTEGER);
          ??? private static WritableCellFormat floatFormat = new WritableCellFormat(new NumberFormat("#.####"));
          ??? private static WritableCellFormat dateFormat = new WritableCellFormat(new DateFormat("yyyy-MM-dd"));
          ???
          ??? public ExportManager() {
          ??? }
          ???
          ??? /**
          ???? * 輸出excel
          ???? * @param is 原始excel模版輸入流
          ???? * @param os 目的輸出流,這里是ServletOutputStream
          ???? */
          ??? public void exportExcel(InputStream is, OutputStream os, String orgId) {
          ??????? WritableWorkbook wb = null;
          ??????? try {
          ??????????? wb = Workbook.createWorkbook(os, Workbook.getWorkbook(is));
          ??????????? WritableSheet sheet = wb.getSheet(0);
          ??????????? init(sheet);
          ??????????? Session session = HibernateUtil.getSession();
          ??????????? Criteria crit = session.createCriteria(entityClass);
          ??????????? crit.add(Restrictions.eq("orgTypeId", orgId));
          ??????????? List entities = crit.list();
          ??????????? populate(sheet, entities);
          ??????????? wb.write();
          ??????? } catch (Exception e) {
          ??????????? e.printStackTrace();
          ??????? } finally {
          ??????????? try { wb.close(); } catch (Exception e) {}
          ??????? }
          ??? }
          ??? public void exportExcelCd(InputStream is, OutputStream os, String orgId, String strTypeid) {
          ??????? WritableWorkbook wb = null;
          ??????? try {
          ??????????? wb = Workbook.createWorkbook(os, Workbook.getWorkbook(is));
          ??????????? WritableSheet sheet = wb.getSheet(0);
          ??????????? init(sheet);
          ??????????? Session session = HibernateUtil.getSession();
          ??????????? Criteria crit = session.createCriteria(entityClass);
          ??????????? crit.add(Restrictions.eq("orgTypeId", orgId));?
          ??????????? crit.add(Restrictions.eq("StructID", strTypeid));
          ??????????? List entities = crit.list();
          ??????????? populate(sheet, entities);
          ??????????? wb.write();
          ??????? } catch (Exception e) {
          ??????????? e.printStackTrace();
          ??????? } finally {
          ??????????? try { wb.close(); } catch (Exception e) {}
          ??????? }
          ??? }
          ???
          ??? private void init(WritableSheet sheet) throws Exception {
          ??????? entityClass = Class.forName(sheet.getCell(0, 0).getContents().trim());
          ??????? Cell[] fieldNames = sheet.getRow(1);
          ??????? int len = fieldNames.length;
          ??????? fields = new Field[len];
          ??????? fieldTypes = new Class[len];
          ??????? for (int i = 0; i < len; i++) {
          ??????????? fields[i] = entityClass.getDeclaredField(fieldNames[i].getContents().trim());
          ??????????? fieldTypes[i] = fields[i].getType();
          ??????? }
          ??? }
          ???
          ??? private void populate(WritableSheet sheet, List entities) throws Exception {
          ??????? for (int i = 0; i < entities.size(); i++) {
          ??????????? Object entity = entities.get(i);
          ??????????? for (int j = 0; j < fields.length; j++) {
          ??????????????? fields[j].setAccessible(true);
          ??????????????? WritableCell cell = getCell(i + 3, j, fields[j].get(entity));
          ??????????????? sheet.addCell(cell);
          ??????????? }
          ??????? }
          ??? }
          ???
          ??? private WritableCell getCell(int row, int col, Object value) {
          ??????? if (fieldTypes[col] == String.class)
          ??????????? return new Label(col, row, (String) value);
          ??????? if (fieldTypes[col] == long.class || fieldTypes[col] == Long.class)
          ??????????? return new jxl.write.Number(col, row, value == null ? 0 : ((Long) value).longValue(), integerFormat);
          ??????? if (fieldTypes[col] == int.class || fieldTypes[col] == Integer.class)
          ??????????? return new jxl.write.Number(col, row, value == null ? 0 : ((Integer) value).intValue(), integerFormat);
          ??????? if (fieldTypes[col] == double.class || fieldTypes[col] == Double.class)
          ??????????? return new jxl.write.Number(col, row, value == null ? 0 : ((Double) value).doubleValue(), floatFormat);
          ??????? if (fieldTypes[col] == float.class || fieldTypes[col] == Float.class)
          ??????????? return new jxl.write.Number(col, row, value == null ? 0 : ((Float) value).floatValue(), floatFormat);
          ??????? if (fieldTypes[col] == BigDecimal.class)
          ??????????? return new jxl.write.Number(col, row, value == null ? 0 : ((BigDecimal) value).doubleValue(), floatFormat);
          ??????? if (fieldTypes[col] == Timestamp.class || fieldTypes[col] == Date.class)
          ??????????? return new jxl.write.DateTime(col, row, value == null ? new Date() : (Date) value, dateFormat);
          ??????? return null;
          ??? }
          ???
          }



          大盤預測 國富論
          posted on 2007-08-10 14:18 華夢行 閱讀(235) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 景东| 兴化市| 南昌市| 玛纳斯县| 阿勒泰市| 潮安县| 涞水县| 乐陵市| 吴江市| 绥阳县| 敖汉旗| 嵊泗县| 林周县| 临城县| 阿拉善左旗| 龙门县| 六枝特区| 巩留县| 临西县| 紫云| 白河县| 江川县| 贡觉县| 信丰县| 舟山市| 吉木萨尔县| 原平市| 日土县| 河南省| 读书| 肥城市| 黄山市| 博湖县| 原阳县| 泾源县| 广德县| 霞浦县| 湄潭县| 合水县| 淮安市| 濮阳县|