<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Johnny

    表面的激烈是由于內心的單薄,真正的力量如同流水一般沉靜
    隨筆 - 1, 文章 - 5, 評論 - 0, 引用 - 0
    數據加載中……

    2012年10月21日

    POI Excel小工具類

      1 package poi.excel;
      2 
      3 import java.awt.Graphics;
      4 import java.awt.Image;
      5 import java.awt.image.BufferedImage;
      6 import java.io.ByteArrayOutputStream;
      7 import java.io.FileInputStream;
      8 import java.io.IOException;
      9 import javax.imageio.ImageIO;
     10 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
     11 import org.apache.poi.hssf.usermodel.HSSFPatriarch;
     12 import org.apache.poi.hssf.usermodel.HSSFPicture;
     13 import org.apache.poi.hssf.usermodel.HSSFSheet;
     14 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
     15 
     16 /**
     17  * poi HSSF 提取點方法
     18  * @author sikaijian
     19  */
     20 public class Excel03Util {
     21     /**
     22      * 畫圖片
     23      * @param sheet
     24      * @param wb
     25      * @param startCol
     26      * @param startRow
     27      * @param endCol
     28      * @param endRow
     29      * @param pictureIndex 圖片索引號 需要先在workbook中加入圖片資源
     30      * @throws IOException
     31      * @author sikaijian
     32      */
     33     public static void drawPicture(HSSFSheet sheet, HSSFWorkbook wb,
     34             short startCol, int startRow, short endCol, int endRow,
     35             int pictureIndex) throws IOException {
     36         // 圖片容器
     37         HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
     38         
     39         // 錨點 容器下錨位置
     40         HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 255, startCol,
     41                 startRow, endCol, endRow);
     42         anchor.setAnchorType(2);
     43         
     44         // 容器下錨,并載入圖片
     45         HSSFPicture picture = patriarch.createPicture(anchor, pictureIndex);
     46 
     47         picture.resize();
     48         picture.setLineStyle(picture.LINESTYLE_DASHDOTGEL);
     49     }
     50 
     51     /**
     52      * 加載圖片
     53      * @param img 圖片對象
     54      * @param wb
     55      * @return 圖片索引號
     56      * @throws IOException
     57      * @author sikaijian
     58      */
     59     public static int loadPicture(Image img, HSSFWorkbook wb)
     60             throws IOException {
     61         int pictureIndex;
     62         ByteArrayOutputStream arrayOut = null;
     63         try {
     64             arrayOut = new ByteArrayOutputStream();
     65             BufferedImage buImage = new BufferedImage(img.getWidth(null), img
     66                     .getHeight(null), BufferedImage.TYPE_INT_RGB);
     67             Graphics g = buImage.getGraphics();
     68             g.drawImage(img, 0, 0, null);
     69             ImageIO.write(buImage, "png", arrayOut);
     70 
     71             byte[] data = arrayOut.toByteArray();
     72 
     73             pictureIndex = wb.addPicture(data, HSSFWorkbook.PICTURE_TYPE_PNG);
     74         } finally {
     75             if (null != arrayOut) {
     76                 arrayOut.close();
     77             }
     78         }
     79 
     80         return pictureIndex;
     81     }
     82 
     83     /**
     84      * 加載圖片
     85      * @param path 圖片路徑
     86      * @param wb
     87      * @return 圖片索引號
     88      * @throws IOException
     89      */
     90     public static int loadPicture(String path, HSSFWorkbook wb)
     91             throws IOException {
     92         int pictureIndex;
     93         FileInputStream fis = null;
     94         ByteArrayOutputStream bos = null;
     95         try {
     96             fis = new FileInputStream(path);
     97             bos = new ByteArrayOutputStream();
     98             int c;
     99             while ((c = fis.read()) != -1)
    100                 bos.write(c);
    101             pictureIndex = wb.addPicture(bos.toByteArray(),
    102                     HSSFWorkbook.PICTURE_TYPE_PNG);
    103         } finally {
    104             if (fis != null)
    105                 fis.close();
    106             if (bos != null)
    107                 bos.close();
    108         }
    109         return pictureIndex;
    110     }
    111 }
    112 

    posted @ 2012-10-21 17:43 瓢菝的雨夜 閱讀(726) | 評論 (0)編輯 收藏

    2012年9月21日

    希爾排序Java代碼

    /**
     * 希爾排序
     * 
    @author sikaijian
     
    */
    public class ShellSort {
        public static void sort(int[] data){
            int d = data.length/2;
            while(d!=0){
                directInsertSort(data, d);
                d/=2;
            }
        }
        
        /**
         * 帶增量的直接插入排序
         * 
    @param data 待排序數組
         * 
    @param d 增量
         
    */
        private static void directInsertSort(int[] data, int d){
            int len = data.length;
            
            for(int i=0; i+d<len; i++){
                int pCurrent = i+d;
                int left = i-1;
                while(pCurrent<len){
                    int front = pCurrent-d;
                    int key = data[pCurrent];
                    while(front>left && data[front]>key){
                        data[front+d] = data[front];
                        front-=d;
                    }
                    data[front+d] = key;
                    
                    pCurrent+=d;
                }
            }
        }
        
        public static void showArray(int[] array){
            for (int t : array) {
                System.out.print(t);
                System.out.print(" ");
            }
        }
        
        /**
         * 測試代碼
         * 
    @param args
         
    */
        public static void main(String[] args) {
            int[] data = new int[] { 49, 23, 65, 13, 38, 96, 12, 33, 88, 123, 22,
                    11, 9, 55, 111, 0 };

            showArray(data);
            System.out.println();
            System.out.println("------------------------------");
            ShellSort.sort(data);

            showArray(data);
        }
    }

    posted @ 2012-09-21 17:30 瓢菝的雨夜 閱讀(169) | 評論 (0)編輯 收藏

    直接插入排序Java代碼

    /**
     * 直接插入排序
     * 
    @author sikaijian
     
    */
    public class DirectInsertSort {
        public static void sort(int[] data){
            int pCurrent = 1;   // 認定第0個數是有序的,從第1個數開始插入排序
            int n = data.length;
            
            while(pCurrent<n){
                int front = pCurrent-1;
                int key = data[pCurrent];
                
                // 當前要插入的數和左邊的有序隊列比較(從右往左比較,比較一次移動一次)
                while(front>-1 && key<data[front]){
                    data[front+1] = data[front];
                    front--;
                }
                
                data[front+1] = key;
                
                pCurrent++;
            }
        }
        
        /**
         * 測試代碼
         * 
    @param args
         
    */
        public static void main(String[] args) {
            int[] data = new int[] { 49, 23, 65, 13, 38, 96, 12, 33, 88, 123, 22,
                    11, 9, 55, 111, 0 };

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
            System.out.println();
            System.out.println("------------------------------");
            DirectInsertSort.sort(data);

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
        }
    }

    posted @ 2012-09-21 14:23 瓢菝的雨夜 閱讀(209) | 評論 (0)編輯 收藏

    冒泡排序Java代碼


    /**
     * 冒泡排序
     * 
    @author sikaijian
     
    */
    public class BubbleSort {
        public static void sort(int[] data){
            if(data.length<=1) return;
            
            /**
    * 每一趟排序都把最大的數字放到最后
    * 下一趟排序后,最大的數不參加
    * 總共n-1趟(n為數組長度)
    */
            for (int i = data.length-1; i > 0; i--) {
                for (int j = 0; j < i; j++) {
                    if(data[j]>data[j+1]){
                        int temp = data[j];
                        data[j] = data[j+1];
                        data[j+1] = temp;
                    }
                }
            }
        }
        
        /**
         * 測試代碼
         * 
    @param args
         
    */
        public static void main(String[] args) {
            int[] data = new int[] { 49, 23, 65, 13, 38, 96, 12, 33, 88, 123, 22,
                    11, 9, 55, 111, 0 };

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
            System.out.println();
            System.out.println("------------------------------");
            BubbleSort.sort(data);

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
        }
    }

    posted @ 2012-09-21 13:32 瓢菝的雨夜 閱讀(132) | 評論 (0)編輯 收藏

    快速排序Java代碼

    /**
     * 
    @author sikaijian
     
    */
    public class QuickSort {
        
        /**
         * 快速排序算法實現
         * 
    @param data 待排序數組
         * 
    @param left 左邊界 初始0
         * 
    @param right 右邊界 初始數組長度-1
         * 
    @author sikaijian
         
    */
        public static void sort(int[] data, int left, int right) {
            if (left > right)
                return;
            int pHead = left;  // 頭部指針
            int pTail = right;  // 尾部指針
            int key = data[left];  // 哨兵

            while (pHead < pTail) {
                // 從右往左遍歷,找到比key小的數,放到前面
                while (pHead < pTail && data[pTail] > key) pTail--;
                if (pHead < pTail) data[pHead++] = data[pTail];
                
                // 從左往右遍歷,找到比key大的數,放到后面
                while (pHead < pTail && data[pHead] < key) pHead++;
                if (pHead < pTail) data[pTail--] = data[pHead];
            }
            
            data[pHead] = key; // 歸位
            
            sort(data, left, pHead-1);  // 排序左邊的數組
            sort(data, pHead+1, right);  // 排序右邊的數組
        }
        
        /**
         * 測試代碼
         * 
    @param args
         
    */
        public static void main(String[] args) {
            int[] data = new int[] { 49, 23, 65, 13, 38, 96, 12, 33, 88, 123, 22,
                    11, 9, 55 };

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
            System.out.println();
            System.out.println("------------------------------");
            QuickSort.sort(data, 0, data.length - 1);

            for (int t : data) {
                System.out.print(t);
                System.out.print(" ");
            }
        }
    }

    posted @ 2012-09-21 11:01 瓢菝的雨夜 閱讀(212) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲高清中文字幕免费| 亚洲视频在线观看地址| 亚洲AV无码之国产精品| 成年女人毛片免费观看97| 亚洲av无码不卡久久| 在线看免费观看AV深夜影院| 亚洲精品在线免费观看| 永久免费在线观看视频| 亚洲18在线天美| 日韩黄色免费观看| 免费无码专区毛片高潮喷水| 亚洲阿v天堂在线2017免费| 一本大道一卡二大卡三卡免费 | 精品免费视在线观看| 久久久久亚洲AV成人无码网站| 久久99毛片免费观看不卡| 久久精品a亚洲国产v高清不卡| 最近免费中文字幕大全免费版视频| 亚洲妓女综合网99| 日韩免费视频播放| 丁香六月婷婷精品免费观看| 国产亚洲婷婷香蕉久久精品| 18禁男女爽爽爽午夜网站免费| 国产亚洲精品VA片在线播放| 亚洲成A人片在线观看无码3D| 国产免费久久久久久无码| 亚洲乱人伦中文字幕无码| 国产成人无码区免费A∨视频网站| 一级特级aaaa毛片免费观看| 亚洲AV无码久久| 一二三四在线播放免费观看中文版视频| 亚洲gay片在线gv网站| 亚洲最大激情中文字幕| 亚洲啪啪免费视频| 美国毛片亚洲社区在线观看| 亚洲综合av永久无码精品一区二区| 免费精品无码AV片在线观看| 亚洲精品无码人妻无码| 亚洲精品国产精品乱码在线观看| av无码免费一区二区三区| 国产黄色免费观看|