亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dataexportmodel.java

?? ecside jsp前途分頁的標(biāo)簽 實(shí)現(xiàn)ajax 增刪改查等
?? JAVA
字號(hào):
?package org.ecside.easyda;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ecside.common.log.LogHandler;
import org.ecside.core.ECSideConstants;
import org.ecside.easydataaccess.EasyDataAccessUtil;
import org.ecside.util.ExportViewUtils;

public class DataExportModel extends DataAccessModel  {
	
	Log logger = LogFactory.getLog(DataExportModel.class);

	
    public static final int WIDTH_MULT = 240; // width per char
    public static final int MIN_CHARS = 8; // minimum char width
    public static final short DEFAULT_FONT_HEIGHT = 8;
    public static final double NON_NUMERIC = -.99999;
    public static final String DEFAULT_MONEY_FORMAT = "$###,###,##0.00";
    public static final String DEFAULT_PERCENT_FORMAT = "##0.0%";
    public static final String NBSP = " ";
    
    public static final int colWidth=15;

    protected final static String CONFIG_DELIMITER = ",";
    protected final static String CSV_DELIMITER = ",";
    protected final static String TXT_DELIMITER = "\t";
    
    protected String columnTitles ;
    
    protected String[] titlesColl ;
	
    protected String format;
    
    protected String[] formatColl ;
    
    protected Map mappingItems;

	public void afterPropertiesSet() throws Exception {
		
		if (StringUtils.isNotBlank(columnTitles)){
			titlesColl=columnTitles.split(CONFIG_DELIMITER);
		}else{
			titlesColl=new String[]{};
		}
		if (StringUtils.isNotBlank(format)){
			formatColl=format.split(CONFIG_DELIMITER);
		}else{
			formatColl=new String[]{};
		}
		

		super.afterPropertiesSet();
	}

	
	public void doExport(String sqlName,String type,Map parameterMap,OutputStream outputStream){
		String sql=((StringBuffer)querySqls.get(sqlName)).toString();
		List sqlSnippetList=(List)sqlSnippets.get(sqlName);
		if ("xls".equalsIgnoreCase(type)){
			beforeExportXLS();
			doExportXLS(parameterMap,sql,sqlSnippetList,outputStream);
			afterExportXLS();
		}else if ("csv".equalsIgnoreCase(type)){
			beforeExportCSV();
			doExportCSV(parameterMap,sql,sqlSnippetList,outputStream);
			afterExportCSV();
		}else if ("txt".equalsIgnoreCase(type)){
			beforeExportTXT();
			doExportTXT(parameterMap,sql,sqlSnippetList,outputStream);
			afterExportTXT();
		}else{
			//TODO:
			beforeExportTXT();
			doExportTXT(parameterMap,sql,sqlSnippetList,outputStream);
			afterExportTXT();
		}
	}
	
	public void doExportCSV(Map map,String sql,List sqlSnippetList,OutputStream outputStream){
		doExportText(map, sql, sqlSnippetList, outputStream, CSV_DELIMITER);
	}
	
	public void doExportTXT(Map map,String sql,List sqlSnippetList,OutputStream outputStream){
		doExportText(map, sql, sqlSnippetList, outputStream, TXT_DELIMITER);
	}
	
	public void beforeExportXLS(){ }
	public void afterExportXLS(){ }
	public void beforeExportCSV(){ }
	public void afterExportCSV(){ }
	public void beforeExportTXT(){ }
	public void afterExportTXT(){ }
	
	public void doExportText(Map map,String sql,List sqlSnippetList,OutputStream outputStream,String delimiter){
		Connection conn=null;
		PreparedStatement pstmt = null;
		ResultSet rest = null;
		try {
			conn = getConnection();
			pstmt = EasyDataAccessUtil.createPreparedStatement(conn, sql,sqlSnippetList, map);
			rest = pstmt.executeQuery();
			
			String[] columnNames=DataAccessUtil.getColumnNames(rest);
			map.put(ECSideConstants.TABLE_FILEDS_KEY, columnNames);
			
			DataAccessUtil.outputText(rest, outputStream,delimiter,columnNames,titlesColl, mappingItems);
	
		} catch (SQLException e) {
			LogHandler.errorLog(logger, e);
		} catch (Exception e) {
			LogHandler.errorLog(logger, e);
		}finally{
			close(rest,pstmt,conn);
		}
	}
	
	public void doExportXLS(Map map,String sql,List sqlSnippetList,OutputStream outputStream){
		Connection conn=null;
		PreparedStatement pstmt = null;
		ResultSet rest = null;
	    short cellnum=0;
	    int rownum=0;
		try {
			conn = getConnection();
			pstmt = EasyDataAccessUtil.createPreparedStatement(conn, sql,sqlSnippetList, map);
			rest = pstmt.executeQuery();
			String[] columnNames=DataAccessUtil.getColumnNames(rest);
			map.put(ECSideConstants.TABLE_FILEDS_KEY, columnNames);
		    
		    WritableWorkbook wb= Workbook.createWorkbook(outputStream);
		    WritableSheet sheet = wb.createSheet("Export Workbook",0);

		    rownum+=createXLSHeader(sheet,rownum);
		    
			while (rest.next()) {
				cellnum=0;
				for (int i=0;i<columnNames.length;i++){
					String value=ExportViewUtils.parseXLS(rest.getString(columnNames[i]));
					
					if (i<formatColl.length && "num".equalsIgnoreCase(formatColl[i]) ) {
						writeToCellFormatted(sheet,cellnum,rownum,value, null);
					} else {

						writeToCellAsText(sheet,cellnum,rownum,value, null);
					}
					
					cellnum++;
				}
				rownum++;
//				wb.write();
			}
        	wb.write();
			wb.close();
		} catch (SQLException e) {
			LogHandler.errorLog(logger, e);
		} catch (Exception e) {
			LogHandler.errorLog(logger, e);
		}finally{
			close(rest,pstmt,conn);
		}
	}
	
	public void doExportHTML(Map map,String sql,List sqlSnippetList,OutputStream outputStream,DataHtmlBuilder dataHtmlBuilder){
		Connection conn=null;
		PreparedStatement pstmt = null;
		ResultSet rest = null;
		try {
			conn = getConnection();
			pstmt = EasyDataAccessUtil.createPreparedStatement(conn, sql,sqlSnippetList, map);
			rest = pstmt.executeQuery();
			String[] columnNames=DataAccessUtil.getColumnNames(rest);
			map.put(ECSideConstants.TABLE_FILEDS_KEY, columnNames);
			
			dataHtmlBuilder.setWrite(new PrintWriter(outputStream,true));
			dataHtmlBuilder.setColumnNames(columnNames);
			
			dataHtmlBuilder.tableStart();
			dataHtmlBuilder.tbodyStart();
			while (rest.next()) {
				dataHtmlBuilder.tr(rest);
				dataHtmlBuilder.cells(rest);
				dataHtmlBuilder.trEnd();
			}
			dataHtmlBuilder.tbodyEnd();
			dataHtmlBuilder.tableEnd();
//			dataHtmlBuilder.flush();
//			dataHtmlBuilder.close();
			
		} catch (SQLException e) {
			LogHandler.errorLog(logger, e);
		} catch (Exception e) {
			LogHandler.errorLog(logger, e);
		}finally{
			close(rest,pstmt,conn);
		}
	}
	
	public static short createTextHeader(String[] titlesColl,OutputStream outputStream,String delimiter) throws WriteException, IOException{
		if (titlesColl==null || titlesColl.length<1){
			return 0;
		}
		for (int i=0;i<titlesColl.length;i++){
			String value=titlesColl[i];
			value=value==null?delimiter:value.trim()+delimiter;
			outputStream.write(value.getBytes());
		}
		outputStream.write(ExportViewUtils.BR.getBytes());
		return 1;
	}
	
	public static short createCSVHeader(String[] titles,OutputStream outputStream) throws WriteException, IOException{
		if (titles==null || titles.length<1){
			return 0;
		}
		for (int i=0;i<titles.length;i++){
			String value=titles[i];
			value=ExportViewUtils.parseCSV(value);
			outputStream.write(value.getBytes());
			if (i<titles.length-1){
				outputStream.write(ExportViewUtils.COMMA);
			}
		}
		outputStream.write(ExportViewUtils.BR.getBytes());
		return 1;
	}
	
	public short createXLSHeader(WritableSheet sheet,int rownum) throws WriteException{
		if (titlesColl==null || titlesColl.length<1){
			return 0;
		}
        WritableCellFormat cellFormat=new WritableCellFormat();
        WritableFont arial10font = new WritableFont(WritableFont.ARIAL,WritableFont.DEFAULT_POINT_SIZE,WritableFont.BOLD); 
        cellFormat.setBackground(Colour.GRAY_25);
        cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN,Colour.GRAY_50);
        cellFormat.setFont(arial10font);
		for (int i=0;i<titlesColl.length;i++){
			writeToCellAsText(sheet,(short)i,rownum,titlesColl[i],cellFormat);
		}
		return 1;
	}
	
	
    private void writeToCellAsText(WritableSheet sheet,short cellnum,int rownum,  String value, WritableCellFormat styleModifier) throws RowsExceededException, WriteException {
        // format text
        if (value.trim().equals(NBSP)) {
            value = "";
        }
        Label label=new Label(cellnum,rownum,value); 
        if (styleModifier!=null){
        	label.setCellFormat(styleModifier);
        }
        sheet.addCell(label);

    }

    private void writeToCellFormatted( WritableSheet sheet,short cellnum,int rownum,  String value, WritableCellFormat styleModifier) throws RowsExceededException, WriteException {
        double numeric = NON_NUMERIC;

        try {
            numeric = Double.parseDouble(value);
        } catch (Exception e) {
            numeric = NON_NUMERIC;
        }

        if (value.startsWith("$") || value.endsWith("%") || value.startsWith("($")) {
//            boolean moneyFlag = (value.startsWith("$") || value.startsWith("($"));
//            boolean percentFlag = value.endsWith("%");

            value = StringUtils.replace(value, "$", "");
            value = StringUtils.replace(value, "%", "");
            value = StringUtils.replace(value, ",", "");
            value = StringUtils.replace(value, "(", "-");
            value = StringUtils.replace(value, ")", "");

            try {
                numeric = Double.parseDouble(value);
            } catch (Exception e) {
                numeric = NON_NUMERIC;
            }

//            if (moneyFlag) {
//                // format money
//            	NumberFormat fivedps = new NumberFormat(moneyFormat); 
//            	WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps); 
//            	Number number = new Number(cellnum, rownum, numeric, fivedpsFormat); 
//                if (styleModifier!=null){
//                	number.setCellFormat(styleModifier);
//                }
//            	sheet.addCell(number); 
//             } else if (percentFlag) {
//                // format percent
//                numeric = numeric / 100;
//                
//            	NumberFormat fivedps = new NumberFormat(percentFormat); 
//            	WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps); 
//            	Number number = new Number(cellnum, rownum, numeric, fivedpsFormat);
//                if (styleModifier!=null){
//                	number.setCellFormat(styleModifier);
//                }
//            	sheet.addCell(number);
//            }
        } else if (Math.abs(numeric - NON_NUMERIC) >= .0000001) {
        	// numeric != NON_NUMERIC
            // format numeric
        	Number number = new Number(cellnum, rownum, numeric); 
            if (styleModifier!=null){
            	number.setCellFormat(styleModifier);
            }
        	sheet.addCell(number); 
        } else {
            // format text
            if (value.trim().equals(NBSP)) {
                value = "";
            }
            Label label=new Label(cellnum,rownum,value); 
            if (styleModifier!=null){
            	label.setCellFormat(styleModifier);
            }
            sheet.addCell(label);
        }

    }
	

	public String getFormat() {
		return format;
	}


	public void setFormat(String format) {
		this.format = format;
	}


	public String getColumnTitles() {
		return columnTitles;
	}


	public void setColumnTitles(String columnTitles) {
		this.columnTitles = columnTitles;
	}


	public Map getMappingItems() {
		return mappingItems;
	}


	public void setMappingItems(Map mappingItems) {
		this.mappingItems = mappingItems;
	}



	
	
	


	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品国产91久久来源| 亚洲电影在线免费观看| 久久99国产精品久久| 日韩精品一区二区三区在线播放| 日韩电影在线一区| 久久午夜老司机| 成人性色生活片| 亚洲免费在线观看| 欧美美女bb生活片| 精品一区免费av| 欧美激情一区二区三区不卡| 99re这里都是精品| 亚洲福利视频一区| 日韩视频一区二区| 成人激情小说网站| 无码av免费一区二区三区试看| 日韩久久久久久| proumb性欧美在线观看| 亚洲国产精品影院| 欧美精品一区二区在线观看| av网站免费线看精品| 玉足女爽爽91| 日韩精品在线一区| 91蜜桃网址入口| 免费观看日韩av| 亚洲视频免费观看| 欧美一区二区三区精品| 国产宾馆实践打屁股91| 亚洲网友自拍偷拍| 久久久蜜桃精品| 国产欧美一区二区三区网站 | 久久精品亚洲一区二区三区浴池| 成人高清伦理免费影院在线观看| 亚洲国产美国国产综合一区二区| 久久久久久一级片| 欧美色综合网站| 国产成人在线影院| 视频一区视频二区在线观看| 国产喂奶挤奶一区二区三区| 欧美日韩在线播放一区| 成人激情校园春色| 精品无人码麻豆乱码1区2区| 亚洲最大成人网4388xx| 久久免费午夜影院| 欧美一区二区三区日韩视频| 色综合久久久网| 国产综合久久久久久久久久久久| 亚洲综合丝袜美腿| 中文字幕永久在线不卡| 欧美精品一区二区三区视频| 欧美精品乱码久久久久久按摩| 不卡av在线网| 国产一本一道久久香蕉| 久久国产免费看| 天堂成人国产精品一区| 一区二区在线免费观看| 久久精品人人做人人综合| 欧美一区二区三区成人| 欧美日韩精品一区二区三区蜜桃| 91丨porny丨最新| 成年人国产精品| 国产成人aaa| 国产成人精品免费视频网站| 麻豆精品在线观看| 全部av―极品视觉盛宴亚洲| 水野朝阳av一区二区三区| 一区二区三区国产精品| 一区二区三区中文字幕电影| 亚洲精品中文字幕在线观看| 国产精品福利影院| 国产精品视频一二| 中文字幕乱码亚洲精品一区 | 欧美精品高清视频| 欧美日韩日日骚| 欧美色图激情小说| 欧美日韩激情一区二区| 欧美日韩三级一区二区| 欧美日韩精品一区二区三区| 欧美日韩一级片网站| 欧美精品在线一区二区| 在线综合亚洲欧美在线视频| 欧美久久久一区| 欧美男同性恋视频网站| 91精品婷婷国产综合久久竹菊| 在线不卡免费欧美| 欧美一级高清片| wwwwxxxxx欧美| 中文幕一区二区三区久久蜜桃| 中文字幕va一区二区三区| 国产精品美女久久久久久久久| 中文字幕中文字幕在线一区 | aaa欧美色吧激情视频| 菠萝蜜视频在线观看一区| 成人app下载| 色爱区综合激月婷婷| 欧美日韩一区二区三区视频| 4438x亚洲最大成人网| 日韩欧美亚洲另类制服综合在线| 精品国产乱码久久| 亚洲欧美在线另类| 视频一区在线播放| 国产a级毛片一区| 91美女蜜桃在线| 91麻豆精品国产91久久久久久久久 | 国产欧美日韩亚州综合 | 亚洲欧美偷拍另类a∨色屁股| 一区二区三区在线不卡| 日本午夜精品视频在线观看| 国产成人精品在线看| 在线视频国内一区二区| 欧美一级日韩一级| 国产精品成人午夜| 日韩精品一级中文字幕精品视频免费观看 | 亚洲午夜激情av| 国产一区二区久久| 日本韩国一区二区| 精品国产制服丝袜高跟| 亚洲男人的天堂在线aⅴ视频| 免费在线观看成人| www.性欧美| 欧美一级xxx| ...av二区三区久久精品| 日韩成人av影视| www.av精品| 精品国产免费一区二区三区四区 | 国产人久久人人人人爽| 亚洲一区二区三区四区在线 | 亚洲欧美一区二区视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 波波电影院一区二区三区| 91精品国产手机| 亚洲美女一区二区三区| 国产伦精一区二区三区| 欧美性感一区二区三区| 中文字幕精品在线不卡| 热久久久久久久| 欧美性受xxxx黑人xyx| 国产日韩av一区二区| 日韩av成人高清| 在线免费亚洲电影| 中文字幕欧美日韩一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美性大战久久| 亚洲人成影院在线观看| 国产在线精品一区二区三区不卡 | 亚洲欧美中日韩| 国产精品911| 精品国产sm最大网站| 天天综合日日夜夜精品| 色欲综合视频天天天| 国产精品欧美一级免费| 国产一区二区三区免费| 欧美成人在线直播| 日本sm残虐另类| 欧美精品色一区二区三区| 亚洲综合网站在线观看| 色偷偷一区二区三区| 中文字幕一区二区三区色视频| 精品一区二区免费在线观看| 日韩一级完整毛片| 日韩av网站免费在线| 91精品国产欧美一区二区18| 日韩电影在线免费看| 欧美一区二区在线免费播放| 日韩精品电影在线观看| 在线电影欧美成精品| 天天综合色天天| 日韩一级视频免费观看在线| 美女视频黄久久| 精品国产欧美一区二区| 国产精品99久久久久久久vr| 久久久99精品免费观看不卡| 粉嫩高潮美女一区二区三区| 国产精品久久看| 99精品久久只有精品| 亚洲综合一区在线| 欧美日韩国产色站一区二区三区| 日日夜夜精品免费视频| 欧美刺激午夜性久久久久久久| 久久99国产精品免费网站| 久久久国产午夜精品| eeuss国产一区二区三区| 国产精品国产三级国产普通话蜜臀 | 中文字幕成人在线观看| 波多野结衣91| 亚洲曰韩产成在线| 欧美一区二区三区免费视频| 国产精品一级在线| 亚洲桃色在线一区| 9191精品国产综合久久久久久| 精品一区二区三区在线观看| 国产日本欧洲亚洲| 色乱码一区二区三区88| 日本麻豆一区二区三区视频| 久久久久高清精品| 91免费在线视频观看| 琪琪久久久久日韩精品| 中文字幕va一区二区三区| 欧美系列一区二区| 国产一区亚洲一区|