POI 百萬資料匯出
阿新 • • 發佈:2019-01-03
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<String> fieldNames; /**匯出檔案每列程式碼,用於反射獲取物件屬性值*/ private List<String> 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<String> fieldNames,List<String> 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<String> 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<String> getFieldNames() { return fieldNames; } public void setFieldNames(List<String> fieldNames) { this.fieldNames = fieldNames; } public List<String> getFieldCodes() { return fieldCodes; } public void setFieldCodes(List<String> 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<String> fieldNames=new ArrayList<String>(); fieldNames.add("流水號"); fieldNames.add("通用名"); fieldNames.add("價格"); //告訴匯出類資料list中物件的屬性,讓ExcelExportSXXSSF通過反射獲取物件的值 List<String> fieldCodes=new ArrayList<String>(); 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<Ypxx> list = new ArrayList<Ypxx>(); 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); } }
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小時制)<br> * 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br> * * @param time * Date 日期<br> * @return String 字串<br> */ 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小時制)<br> * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br> * * @param time * Date 日期<br> * @param x * int 任意整數如:1<br> * @return String 字串<br> */ 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("<", "&lt;"); str = str.replaceAll(">", "&gt;"); str = str.replaceAll("'", "''"); str = str.replaceAll(" ", "&nbsp;"); str = str.replaceAll("\n", "<br>"); } return str; } public static String toText(String str) { if (str == null) { return ""; } else { str = str.replaceAll("&lt;", "<"); str = str.replaceAll("&gt;", ">"); str = str.replaceAll("''", "'"); str = str.replaceAll("&nbsp;", " "); str = str.replaceAll("<br>", "\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("&nbsp;", " "); } /** * 去掉字串裡面的html程式碼。<br> * 要求資料要規範,比如大於小於號要配套,否則會被集體誤殺。 * * @paramcontent 內容 * @return去掉後的內容 */ public static String stripHtml(String content) { content = content.replaceAll("<p.*?>", "rn"); content = content.replaceAll("<brs*/?>", "rn"); content = content.replaceAll("<.*?>", ""); content = content.replaceAll("&nbsp;", " "); 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<list.size();i++){ String curmib = (String) list.get(i); String curvalue_andend = curmib.substring(mib.length() + 1, curmib.length()); String curvalue=""; if(curvalue_andend.indexOf(".")!=-1){ curvalue = curvalue_andend.substring(0, curvalue_andend .indexOf(".")); System.out.println("teststst=="+curvalue); }else{ curvalue=curvalue_andend; } lastvaluelt.add(curvalue); } Comparator comp = new ContentComparator(); Collections.sort(lastvaluelt,comp); int theMaxValue = Integer.valueOf((String) lastvaluelt.get(lastvaluelt.size()-1)); for(int i = 1;i<theMaxValue;i++){ boolean flag = false; for(int j = 0;j<lastvaluelt.size();j++){ String curval = (String) lastvaluelt.get(j); if(Integer.parseInt(curval)==i){ flag = true; break; } } if(!flag){ lostlist.add(i); } } for (int i = 0; i < lostlist.size(); i++) { System.out.println(lostlist.get(i)); } */ //MyUtil.getStartTimeStr(); } }
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 + "]"; } }