当前位置 : 主页 > 编程语言 > c++ >

POI 百万数据导出

来源:互联网 收集:自由互联 发布时间:2021-07-03
poi 导出主类 package test;import java.io.File;import java.io.FileOutputStream;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Ro
poi 导出主类
package test;

import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

public class ExcelExportSXXSSF {

	// 定义工作表
	private SXSSFWorkbook wb;

	/**
	 * 定义工作表中的sheet
	 */
	private Sheet sh;


	/**
	 * 定义保存在内存中的数量,-1表示手动控制
	 */
	private int flushRows;
	/** 导出文件行数 */
	private int rownum;
	/** 导出文件列数 */
	private int colnum;

	/** 导出文件的存放路径 */
	private String filePath;
	/** 下载导出文件的路径 */
	private String fileWebPath;
	/**文件名称前缀*/
	private String filePrefix;
	/**导出文件全路径*/
	private String fileAllPath;
	/** 导出文件列标题 */
	private List
 
   fieldNames;
	/**导出文件每列代码,用于反射获取对象属性值*/
	private List
  
    fieldCodes; private ExcelExportSXXSSF() { } /** * 开始导出方法 * * @param filePath * 导出文件存放物理路径 * @param fileWebPath * 导出文件web下载路径 * @param filePrefix * 导出文件名的前缀 * @param flushRows * 存放在内存的数据量 * @param fieldNames * 导出文件列标题 * @param fieldCodes * 导出数据对象的字段名称 * @param flushRows * 写磁盘控制参数 * @return */ public static ExcelExportSXXSSF start(String filePath, String fileWebPath,String filePrefix, List
   
     fieldNames,List
    
      fieldCodes, int flushRows) throws Exception { ExcelExportSXXSSF excelExportSXXSSF = new ExcelExportSXXSSF(); excelExportSXXSSF.setFilePath(filePath); excelExportSXXSSF.setFileWebPath(fileWebPath); excelExportSXXSSF.setFilePrefix(filePrefix); excelExportSXXSSF.setFieldNames(fieldNames); excelExportSXXSSF.setFieldCodes(fieldCodes); excelExportSXXSSF.setWb(new SXSSFWorkbook(flushRows));//创建workbook excelExportSXXSSF.setSh(excelExportSXXSSF.getWb().createSheet());//创建sheet excelExportSXXSSF.writeTitles(); return excelExportSXXSSF; } /** * 设置导入文件的标题 * 开始生成导出excel的标题 * @throws Exception */ private void writeTitles() throws Exception { rownum = 0;//第0行 colnum = fieldNames.size();//根据列标题得出列数 Row row = sh.createRow(rownum); for (int cellnum = 0; cellnum < colnum; cellnum++) { Cell cell = row.createCell(cellnum); cell.setCellValue(fieldNames.get(cellnum)); } } /** * 向导出文件写数据 * * @param datalist * 存放Object对象,仅支持单个自定义对象,不支持对象中嵌套自定义对象 * @return */ public void writeDatasByObject(List datalist) throws Exception { for (int j = 0; j < datalist.size(); j++) { rownum = rownum + 1; Row row = sh.createRow(rownum); for (int cellnum = 0; cellnum < fieldCodes.size(); cellnum++) { Object owner = datalist.get(j); Object value = invokeMethod(owner, fieldCodes.get(cellnum), new Object[] {}); Cell cell = row.createCell(cellnum); cell.setCellValue(value!=null?value.toString():""); } } } /** * 向导出文件写数据 * * @param datalist * 存放字符串数组 * @return */ public void writeDatasByString(List
     
       datalist) throws Exception { rownum = rownum + 1; Row row = sh.createRow(rownum); int datalist_size = datalist.size(); for (int cellnum = 0; cellnum < colnum; cellnum++) { Cell cell = row.createCell(cellnum); if(datalist_size>cellnum){ cell.setCellValue(datalist.get(cellnum)); }else{ cell.setCellValue(""); } } } /** * 手动刷新方法,如果flushRows为-1则需要使用此方法手动刷新内存 * * @param flushRows * @throws Exception */ public void flush(int flushNum) throws Exception { ((SXSSFSheet) sh).flushRows(flushNum); } /** * 导出文件 * * @throws Exception */ public String exportFile() throws Exception { String filename = filePrefix+"_"+MyUtil.getCurrentTimeStr() + ".xlsx"; File tmp = new File(filePath); if (!tmp.exists()) { //判断文件是否存在 tmp.mkdirs(); } FileOutputStream out = new FileOutputStream(tmp+filename); wb.write(out); out.flush(); out.close(); setFileAllPath(fileWebPath + filename); //设置路径 return fileWebPath + filename; //返回路径 } /** * 反射方法,通过get方法获取对象属性 * * @param owner * @param fieldname * @param args * @return * @throws Exception */ private Object invokeMethod(Object owner, String fieldname, Object[] args) throws Exception { String methodName = "get" + fieldname.substring(0, 1).toUpperCase() + fieldname.substring(1); Class ownerClass = owner.getClass(); Class[] argsClass = new Class[args.length]; for (int i = 0, j = args.length; i < j; i++) { argsClass[i] = args[i].getClass(); } Method method = ownerClass.getMethod(methodName, argsClass); return method.invoke(owner, args); } public SXSSFWorkbook getWb() { return wb; } public void setWb(SXSSFWorkbook wb) { this.wb = wb; } public Sheet getSh() { return sh; } public void setSh(Sheet sh) { this.sh = sh; } public int getFlushRows() { return flushRows; } public void setFlushRows(int flushRows) { this.flushRows = flushRows; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public String getFileWebPath() { return fileWebPath; } public void setFileWebPath(String fileWebPath) { this.fileWebPath = fileWebPath; } public List
      
        getFieldNames() { return fieldNames; } public void setFieldNames(List
       
         fieldNames) { this.fieldNames = fieldNames; } public List
        
          getFieldCodes() { return fieldCodes; } public void setFieldCodes(List
         
           fieldCodes) { this.fieldCodes = fieldCodes; } public int getRownum() { return rownum; } public String getFilePrefix() { return filePrefix; } public void setFilePrefix(String filePrefix) { this.filePrefix = filePrefix; } public int getColnum() { return colnum; } public String getFileAllPath() { return fileAllPath; } public void setFileAllPath(String fileAllPath) { this.fileAllPath = fileAllPath; } public static void main(String[] args) throws Exception { /** 导出文件存放物理路径 * @param fileWebPath * 导出文件web下载路径 * @param filePrefix * 导出文件名的前缀 * @param flushRows * 存放在内存的数据量 * @param fieldNames * 导出文件列标题 * @param fieldCodes * 导出数据对象的字段名称 * @param flushRows*/ //导出文件存放的路径,并且是虚拟目录指向的路径 String filePath = "d:/upload/linshi/"; //导出文件的前缀 String filePrefix="ypxx"; //-1表示关闭自动刷新,手动控制写磁盘的时机,其它数据表示多少数据在内存保存,超过的则写入磁盘 int flushRows=100; //定义导出数据的title List
          
            fieldNames=new ArrayList
           
            (); fieldNames.add("流水号"); fieldNames.add("通用名"); fieldNames.add("价格"); //告诉导出类数据list中对象的属性,让ExcelExportSXXSSF通过反射获取对象的值 List
            
              fieldCodes=new ArrayList
             
              (); fieldCodes.add("bm");//药品流水号 fieldCodes.add("mc");//通用名 fieldCodes.add("price");//价格 //注意:fieldCodes和fieldNames个数必须相同且属性和title顺序一一对应,这样title和内容才一一对应 //开始导出,执行一些workbook及sheet等对象的初始创建 ExcelExportSXXSSF excelExportSXXSSF = ExcelExportSXXSSF.start(filePath, "/upload/", filePrefix, fieldNames, fieldCodes, flushRows); //准备导出的数据,将数据存入list,且list中对象的字段名称必须是刚才传入ExcelExportSXXSSF的名称 List
              
                list = new ArrayList
               
                (); for (int i=0; i<=1048574; i++) { Ypxx ypxx1 = new Ypxx("001"+i, "青霉素"+i, i); list.add(ypxx1); } //执行导出 excelExportSXXSSF.writeDatasByObject(list); //输出文件,返回下载文件的http地址 String webpath = excelExportSXXSSF.exportFile(); System.out.println(webpath); } }
               
              
             
            
           
          
         
        
       
      
     
    
   
  
 
poi 所需要的工具类
package test;

import java.io.UnsupportedEncodingException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MyUtil {
	private static final String CNUMBER_PATTERN = "^[0-9]*$";// 判断数字的正则表达式
	
	

	private static SimpleDateFormat bartDateFormat = new SimpleDateFormat(
			"yyyy-MM-dd");

	public static int getYear(Date date) {
		try {
			String form_date = bartDateFormat.format(date);
			return Integer.parseInt(form_date.substring(0, 4));
		} catch (Exception ex) {
			return Integer.parseInt(getCurrentTime().substring(0, 4));
		}
	}

	public static int getMonth(Date date) {
		try {
			String form_date = bartDateFormat.format(date);
			return Integer.parseInt(form_date.substring(5, form_date
					.lastIndexOf("-")));
		} catch (Exception ex) {
			String currenttimel = getCurrentTime();
			return Integer.parseInt(currenttimel.substring(5, currenttimel
					.lastIndexOf("-")));
		}
	}

	public static int getDay(Date date) {
		try {
			String form_date = bartDateFormat.format(date);
			return Integer.parseInt(form_date.substring(form_date
					.lastIndexOf("-") + 1, form_date.length()));
		} catch (Exception ex) {
			String currenttimel = getCurrentTime();
			return Integer.parseInt(currenttimel.substring(5, currenttimel
					.lastIndexOf("-")));
		}

	}

	public static String[] getMonth_days(Date date) {
		String[] month_day = { "31", "28", "31", "30", "31", "30", "31", "31",
				"30", "31", "30", "31" };
		int year = getYear(date);
		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
			month_day[1] = "29";
		return month_day;
	}

	public static int getCount(String str, String sign) {
		if (str == null) {
			return 0;
		}
		StringTokenizer s = new StringTokenizer(str, sign);
		return s.countTokens();
	}

	public static String[] getArray(String str, String sign) {
		int count = getCount(str, sign);
		int j = 0;
		String[] arr = new String[count];
		for (int i = 0; i < count; i++) {
			if (str.indexOf(sign) != -1) {
				j = str.indexOf(sign);
				arr[i] = str.substring(0, j);
				str = str.substring(j + 1);
			} else {
				arr[i] = str;
			}
			// System.out.println(arr[i]);
		}
		return arr;
	}

	public static String getCurrentTime() {
		java.sql.Timestamp temp = new java.sql.Timestamp(System
				.currentTimeMillis());
		return (temp.toString()).substring(0, 19);
	}

	public static Date toDateType(String s) {
		DateFormat df = DateFormat.getDateInstance();
		df.setLenient(false);
		s = s.replace('/', '-');
		s = s.replace('.', '.');
		try {
			return df.parse(s);
		} catch (Exception e) {
			return null;
		}
	}

	public static String unicodeToGB(String strIn) {
		byte[] b;
		String strOut = null;
		if (strIn == null || (strIn.trim()).equals("")) {
			return strIn;
		}
		try {
			b = strIn.getBytes("GBK");
			strOut = new String(b, "ISO8859_1");
		} catch (UnsupportedEncodingException e) {
		}
		return strOut;
	}

	public static String GBToUnicode(String strIn) {
		String strOut = null;
		if (strIn == null || (strIn.trim().equals(""))) {
			return strIn;
		}
		try {
			byte[] b = strIn.getBytes("ISO8859_1");
			strOut = new String(b, "GBK");
		} catch (Exception e) {
		}
		return strOut;
	}

	public static String UTFToUnicode(String strIn) {
		String strOut = null;
		if (strIn == null || (strIn.trim().equals(""))) {
			return strIn;
		}
		try {
			byte[] b = strIn.getBytes("ISO8859_1");
			strOut = new String(b, "UTF-8");
		} catch (Exception e) {
		}
		return strOut;
	}

	public static String UTFToGBK(String strIn) {
		String strOut = null;
		if (strIn == null || (strIn.trim().equals(""))) {
			return strIn;
		}
		try {
			byte[] b = strIn.getBytes("GBK");
			strOut = new String(b, "UTF-8");
		} catch (Exception e) {
		}
		return strOut;
	}

	public static String buildURL(Map parameters) {
		StringBuffer url = new StringBuffer();
		if (parameters != null && parameters.size() > 0) {
			url.append("?");
			for (Iterator iter = parameters.keySet().iterator(); iter.hasNext();) {
				String key = (String) iter.next();
				String[] values = (String[]) parameters.get(key);
				for (int i = 0; i < values.length; i++) {
					url.append(key).append("=").append(values[i]).append("&");
				}
			}
		}
		return url.toString();
	}

	/**
	 * 获得当前时间(根据格式字符串)
	 * 
	 * @param format
	 *            String 格式字符串
	 * @return String
	 */
	public static String getDateByFormat(String format) {
	
		Calendar date = Calendar.getInstance();
		//System.out.print("date.getTime()==="+date.getTime());
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(format);
		String str = sim.format(date.getTime());
		return str;

	}

	/**
	 * 获得当前时间
	 * 
	 * @return String
	 */
	public static String getDate() {
		Calendar date = Calendar.getInstance();
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		String str = sim.format(date.getTime());
		return str;

	}
	
	
	/**
	 * 获得当前时间
	 * 
	 * @return Date
	 */
	public static Date getNowDate() {
		/*Calendar date = Calendar.getInstance();
		return date.getTime();*/
		return getDate(getDate());
	}

	/**
	 * 字符串转换为时间
	 * 
	 * @param date
	 *            String
	 * @return Date
	 */
	public static Date getDate(String date) {

		try {
			SimpleDateFormat localTime = new SimpleDateFormat(
					"yyyy-MM-dd HH:mm:ss");
			Date date1 = localTime.parse(date);
			return date1;
		}

		catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}

	/**
	 * 字符串转换为时间2
	 * 
	 * @param date
	 *            String
	 * @return Date
	 */
	public static Date getDate2(String date) {

		try {
			SimpleDateFormat localTime = new SimpleDateFormat("yyyy-MM-dd");
			Date date1 = localTime.parse(date);
			return date1;
		}

		catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}

	/**
	 * 字符串转换为时间3
	 * 
	 * @param date
	 *            String
	 * @return Date
	 */
	public static Date getDate3(String date) {

		try {
			SimpleDateFormat localTime = new SimpleDateFormat("yyyy-MM");
			Date date1 = localTime.parse(date);
			return date1;
		}

		catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}
	
	/**
	 * 字符串转换为时间3
	 * 
	 * @param date
	 *            String
	 * @return Date
	 */
	public static Date getDateByHHMM(String date) {

		try {
			SimpleDateFormat localTime = new SimpleDateFormat("HH:mm");
			Date date1 = localTime.parse(date);
			return date1;
		}

		catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}

	/**
	 * 字符串转换为时间3
	 * 
	 * @param date
	 *            String
	 * @return Date
	 */
	public static Date getDate4(String date) {

		try {
			SimpleDateFormat localTime = new SimpleDateFormat("yyyy");
			Date date1 = localTime.parse(date);
			return date1;
		}

		catch (ParseException ex) {
			ex.printStackTrace();
		}
		return null;

	}

	/**
	 * 取得秒数
	 */
	public static Long getDateDiff_Second(Date d1, Date d2) {
		return (d2.getTime() - d1.getTime()) / 1000;
	}

	/**
	 * 取得分钟
	 * 
	 * @param d1
	 *            Date
	 * @param d2
	 *            Date
	 * @return Long
	 */
	public static Long getDateDiff_Minute(Date d1, Date d2) {
		return (d2.getTime() - d1.getTime()) / (1000 * 60);
	}

	/**
	 * 取得小时
	 * 
	 * @param d1
	 *            Date
	 * @param d2
	 *            Date
	 * @return Long
	 */
	public static Long getDateDiff_Hour(Date d1, Date d2) {
		return (d2.getTime() - d1.getTime()) / (1000 * 3600);
	}

	public static Long getDateDiff_Hour(String d1, String d2) {
		return (getDate(d2).getTime() - getDate(d1).getTime()) / (1000 * 3600);
	}

	/**
	 * 取得天数
	 * 
	 * @param d1
	 *            Date
	 * @param d2
	 *            Date
	 * @return Long
	 */
	public static Long getDateDiff_Day(Date d1, Date d2) {
		return (d2.getTime() - d1.getTime()) / (1000 * 3600 * 24);
	}

	public static Long getDateDiff_Day(String d1, String d2) {
		return (getDate(d2).getTime() - getDate(d1).getTime())
				/ (1000 * 3600 * 24);
	}

	/**
	 * 取得星期间隔
	 * 
	 * @param d1
	 *            Date
	 * @param d2
	 *            Date
	 * @return Long
	 */
	public static Long getDateDiff_Week(Date d1, Date d2) {
		return (d2.getTime() - d1.getTime()) / (1000 * 3600 * 24 * 7);
	}

	/**
	 * 取得当前时间的 间隔多少小时之后的时间
	 * 
	 * @param hour
	 *            int
	 * @return String
	 */
	public static String getDateAdd(int hour) {

		Calendar calendar = Calendar.getInstance();
		java.text.SimpleDateFormat sd = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		calendar.set(Calendar.HOUR, hour + calendar.get(Calendar.HOUR));
		String enddate = sd.format(calendar.getTime());
		return enddate;

	}

	/**
	 * 取得当前时间的 间隔多少小时之后的时间
	 * 
	 * @param hour
	 *            int
	 * @return String
	 */
	public static String getDateAdd(String starttime, int hour) {

		Calendar calendar = Calendar.getInstance();

		java.text.SimpleDateFormat sd = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		calendar.setTime(getDate(starttime));
		calendar.set(Calendar.HOUR, hour + calendar.get(Calendar.HOUR));
		String date = sd.format(calendar.getTime());
		return date;

	}
	public static Date getDateAdd(Date starttime, int hour) {

		Calendar calendar = Calendar.getInstance();

		java.text.SimpleDateFormat sd = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		calendar.setTime(starttime);
		calendar.set(Calendar.HOUR, hour + calendar.get(Calendar.HOUR));
		return calendar.getTime();

	}

	/**
	 * 取得当前时间的 间隔多少小时之后的时间
	 * 
	 * @param hour
	 *            int
	 * @return String
	 */
	public static String getDateAdd2(String starttime, int hour) {

		Calendar calendar = Calendar.getInstance();

		java.text.SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
		calendar.setTime(getDate2(starttime));
		calendar.set(Calendar.HOUR, hour + calendar.get(Calendar.HOUR));
		String date = sd.format(calendar.getTime());
		return date;

	}

	/**
	 * 取得当前时间的 间隔多少秒之后的时间
	 * 
	 * @param hour
	 *            int
	 * @return String
	 */
	public static String getDateAddSecond(String starttime, long second) {

		Calendar calendar = Calendar.getInstance();

		java.text.SimpleDateFormat sd = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		calendar.setTime(getDate2(starttime));
		calendar.set(Calendar.SECOND, (int) (second + calendar
				.get(Calendar.SECOND)));
		String date = sd.format(calendar.getTime());
		return date;

	}

	/**
	 * 获得时间格式的文件名称
	 * 
	 * @return String
	 */
	public static String getFileName() {
		Calendar date = Calendar.getInstance();
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyyMMdd_hhmmss");
		String str = sim.format(date.getTime());
		return str;
	}

	// 获得月日
	public static String get_MM_DD(String s) {
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		Date date;
		String str = "";
		try {
			date = sim.parse(s);
			sim = new java.text.SimpleDateFormat("[MM-dd]");
			str = sim.format(date.getTime());
		} catch (ParseException e) {
			e.printStackTrace();
		} finally {
			return str;

		}
	}

	// 获得年月日

	public static String get_YYYY_MM_DD(String s) {
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		Date date;
		String str = "";
		try {
			date = sim.parse(s);
			sim = new java.text.SimpleDateFormat("yyyy-MM-dd");
			str = sim.format(date.getTime());
		} catch (ParseException e) {
			e.printStackTrace();
		} finally {
			return str;

		}
	}

	// 获得年月

	public static String get_YYYY_MM(String s) {
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		Date date;
		String str = "";
		try {
			date = sim.parse(s);
			sim = new java.text.SimpleDateFormat("yyyy-MM");
			str = sim.format(date.getTime());
		} catch (ParseException e) {
			e.printStackTrace();
		} finally {
			return str;

		}
	}

	// 获得年

	public static String get_YYYY(String s) {
		java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		Date date;
		String str = "";
		try {
			date = sim.parse(s);
			sim = new java.text.SimpleDateFormat("yyyy");
			str = sim.format(date.getTime());
		} catch (ParseException e) {
			e.printStackTrace();
		} finally {
			return str;

		}
	}

	/**
	 * 检查IP是否合法
	 * 
	 * @param value
	 * @return
	 */

	public static boolean ipValid(String s) {
		String regex0 = "(2[0-4]\\d)" + "|(25[0-5])";
		String regex1 = "1\\d{2}";
		String regex2 = "[1-9]\\d";
		String regex3 = "\\d";
		String regex = "(" + regex0 + ")|(" + regex1 + ")|(" + regex2 + ")|("
				+ regex3 + ")";
		regex = "(" + regex + ").(" + regex + ").(" + regex + ").(" + regex
				+ ")";
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(s);
		return m.matches();
	}

	/**
	 * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)
* 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'
* * @param time * Date 日期
* @return String 字符串
*/ public static String dateToString(Date time) { SimpleDateFormat formatter; formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String ctime = formatter.format(time); return ctime; } public static String dateToString2(Date time) { SimpleDateFormat formatter; formatter = new SimpleDateFormat("yyyy-MM-dd"); String ctime = formatter.format(time); return ctime; } public static String yymmdddateToString(Date time) { SimpleDateFormat formatter; formatter = new SimpleDateFormat("yyyyMMdd"); String ctime = formatter.format(time); return ctime; } public static String hhmmssdateToString(Date time) { SimpleDateFormat formatter; formatter = new SimpleDateFormat("hhmmss"); String ctime = formatter.format(time); return ctime; } /** * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)
* 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'
* * @param time * Date 日期
* @param x * int 任意整数如:1
* @return String 字符串
*/ public static String dateToString(Date time, int x) { SimpleDateFormat formatter; formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a"); String ctime = formatter.format(time); return ctime; } // 判断字符串是否为Null或“” public static boolean isNotNullAndEmpty(String str) { if (null != str && !str.equals("")) { return true; } return false; } // 判断列表是否为Null或大小为0 public static boolean isNotNullAndZero(List list) { if (null != list && list.size() > 0) { return true; } return false; } // 判断字符串是否为Null,trim之后判断是否为空 public static boolean isNotNullAndEmptyByTrim(String str) { if (null != str && !str.trim().equals("")) { return true; } return false; } // 删除ArrayList中重复元素 public static List removeDuplicate(List list) { HashSet h = new HashSet(list); list.clear(); list.addAll(h); return list; } // 判断当前天是否为月末时间即加一天是否为下个月 public static boolean isTheLastMonthDAY() { String curtime = getDate(); String nexttime = getDateAdd(curtime, 24); if (!get_YYYY_MM(curtime).equals(get_YYYY_MM(nexttime))) { return true; } return false; } /** * 编码转换 * * @param str * @return */ public static String getReadStr(String str) { try { String temp_p = str; byte[] temp_t = temp_p.getBytes("ISO-8859-1"); String unicode = new String(temp_t, "gb2312"); return unicode; } catch (Exception e) { return "null"; } } public static String isoTOUTF(String str) { try { String temp_p = str; byte[] temp_t = temp_p.getBytes("ISO-8859-1"); String unicode = new String(temp_t, "UTF-8"); return unicode; } catch (Exception e) { return "null"; } } public static String utfTOISO(String str) { try { String temp_p = str; byte[] temp_t = temp_p.getBytes("UTF-8"); String unicode = new String(temp_t, "ISO-8859-1"); return unicode; } catch (Exception e) { return "null"; } } public static String toHtml(String str) { if (str == null) { return ""; } else { str = str.replaceAll("<", "<"); str = str.replaceAll(">", ">"); str = str.replaceAll("'", "''"); str = str.replaceAll(" ", " "); str = str.replaceAll("\n", "
"); } return str; } public static String toText(String str) { if (str == null) { return ""; } else { str = str.replaceAll("<", "<"); str = str.replaceAll(">", ">"); str = str.replaceAll("''", "'"); str = str.replaceAll(" ", " "); str = str.replaceAll("
", "\n"); } return str; } /** * 去掉字符串的html代码 * * @param htmlStr * 字符串 * @return 结果 */ public static String htmlToStr(String htmlStr) { String result = ""; boolean flag = true; if (htmlStr == null) { return null; } char[] a = htmlStr.toCharArray(); int length = a.length; for (int i = 0; i < length; i++) { if (a[i] == '<') { flag = false; continue; } if (a[i] == '>') { flag = true; continue; } if (flag == true) { result += a[i]; } } return result.toString().replaceAll(" ", " "); } /** * 去掉字符串里面的html代码。
* 要求数据要规范,比如大于小于号要配套,否则会被集体误杀。 * * @paramcontent 内容 * @return去掉后的内容 */ public static String stripHtml(String content) { content = content.replaceAll(" ", "rn"); content = content.replaceAll(" ", "rn"); content = content.replaceAll("<.*?>", ""); content = content.replaceAll(" ", " "); return content; } /** * 判断某个数据是否在已知的List中存在的方法 存在则返回true否则返回faluse * * @param List * 已知的List集合 * @param Strng * 已知的字符串 * @return boolean true/false */ public static boolean theDateIsInThelist(List thelist, String thestring) { if (null != thelist && thelist.size() > 0) { if (null != thestring) { for (int i = 0; i < thelist.size(); i++) { String curstring = (String) thelist.get(i); if (thestring.equals(curstring)) { return true; } } } } return false; } /** * 将短时间格式字符串转换为时间 yyyy-MM-dd * * @param strDate * @return */ public static Date strToDate(String strDate) throws Exception { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; } /** *@param ms * 为要转换的秒数 *@return 返回h m s数组 */ public static long[] toHMS(long ms) { long d;// 天 long s;// 秒 long h;// 小时 long m;// 分钟 d = ms / 3600 / 24; h = (ms - d * 24 * 3600) / 3600; m = (ms - h * 60 * 60 - d * 24 * 3600) / 60; s = ms - h * 60 * 60 - m * 60 - d * 24 * 3600; return new long[] { d, h, m, s }; } /** * 获取当前时间的字符串 格式为"yyyyMMddHHmmss" * @return 返回获取的当前时间 */ public static String getCurrentTimeStr() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String curDate = sdf.format(new Date()); return curDate; } /** * * @return */ public static String getStartTimeStr(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String startDate = sdf.format(new Date(0)); return startDate; } public static boolean isInteger(String value){ /*Pattern p = Pattern.compile(CNUMBER_PATTERN); Matcher m = p.matcher(value); return m.find();*/ try{ java.lang.Integer.parseInt(value); }catch(Exception e){ return false; } return true; } public static boolean isFlost(String value){ try{ java.lang.Float.parseFloat(value); }catch(Exception e){ return false; } return true; } public static boolean isDate(String value,String formatstr){ try{ SimpleDateFormat formatter = new SimpleDateFormat(formatstr); formatter.setLenient(false); formatter.parse(value); return true; }catch(Exception e){ e.printStackTrace(); return false; } } public static void main(String[] args) { /* BigDecimal b1 = new BigDecimal("4315813000"); BigDecimal b2 = new BigDecimal(1000); BigDecimal b3 = b1.divide(b2, 0, BigDecimal.ROUND_HALF_UP); System.out.println("b3===" + b3); long[] hms = toHMS(b3.longValue()); System.out.println(hms[0] + " D " + hms[1] + " H " + hms[2] + "M" + hms[3] + "S");*/ /* ArrayList list = new ArrayList(); String mib = "1.2.3"; list.add("1.2.3.1.0"); list.add("1.2.3.5"); list.add("1.2.3.3.0"); list.add("1.2.3.8"); list.add("1.2.3.12"); List lastvaluelt= new ArrayList(); List lostlist = new ArrayList(); for(int i = 0;i 实体类(需要的数据封装在这里)
package test;

import java.util.Date;

public class Ypxx {
	private String bm;
	private String mc;
	private float price;
	private String kkk;
	private String pzwh;

    private Date pzwhyxq;

    private String jky;

    private String bzcz;

    private String bzdw;

    private Double lsjg;

    private String lsjgcc;

    private String zlcc;

    private String zlccsm;

    private String ypjybg;

    private String ypjybgbm;

    private Date ypjybgyxq;

    private String jyzt;

    private String vchar1;
	public Ypxx(String bm,String mc,float price){
		this.bm = bm;
		this.mc = mc;
		this.price = price;
	}
	public String getKkk() {
		return kkk;
	}
	public void setKkk(String kkk) {
		this.kkk = kkk;
	}
	public String getPzwh() {
		return pzwh;
	}
	public void setPzwh(String pzwh) {
		this.pzwh = pzwh;
	}
	public Date getPzwhyxq() {
		return pzwhyxq;
	}
	public void setPzwhyxq(Date pzwhyxq) {
		this.pzwhyxq = pzwhyxq;
	}
	public String getJky() {
		return jky;
	}
	public void setJky(String jky) {
		this.jky = jky;
	}
	public String getBzcz() {
		return bzcz;
	}
	public void setBzcz(String bzcz) {
		this.bzcz = bzcz;
	}
	public String getBzdw() {
		return bzdw;
	}
	public void setBzdw(String bzdw) {
		this.bzdw = bzdw;
	}
	public Double getLsjg() {
		return lsjg;
	}
	public void setLsjg(Double lsjg) {
		this.lsjg = lsjg;
	}
	public String getLsjgcc() {
		return lsjgcc;
	}
	public void setLsjgcc(String lsjgcc) {
		this.lsjgcc = lsjgcc;
	}
	public String getZlcc() {
		return zlcc;
	}
	public void setZlcc(String zlcc) {
		this.zlcc = zlcc;
	}
	public String getZlccsm() {
		return zlccsm;
	}
	public void setZlccsm(String zlccsm) {
		this.zlccsm = zlccsm;
	}
	public String getYpjybg() {
		return ypjybg;
	}
	public void setYpjybg(String ypjybg) {
		this.ypjybg = ypjybg;
	}
	public String getYpjybgbm() {
		return ypjybgbm;
	}
	public void setYpjybgbm(String ypjybgbm) {
		this.ypjybgbm = ypjybgbm;
	}
	public Date getYpjybgyxq() {
		return ypjybgyxq;
	}
	public void setYpjybgyxq(Date ypjybgyxq) {
		this.ypjybgyxq = ypjybgyxq;
	}
	public String getJyzt() {
		return jyzt;
	}
	public void setJyzt(String jyzt) {
		this.jyzt = jyzt;
	}
	public String getVchar1() {
		return vchar1;
	}
	public void setVchar1(String vchar1) {
		this.vchar1 = vchar1;
	}
	public String getBm() {
		return bm;
	}
	public void setBm(String bm) {
		this.bm = bm;
	}
	public String getMc() {
		return mc;
	}
	public void setMc(String mc) {
		this.mc = mc;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	@Override
	public String toString() {
		return "Ypxx [bm=" + bm + ", mc=" + mc + ", price=" + price + "]";
	}
	
	
}
网友评论