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

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

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

    posts - 5,  comments - 7,  trackbacks - 0
    poi是apache基金下面的一個開源項目,在[url]http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 可以下載到poi的包
    下載以后把解壓得到的文件加到web-inf下面的lib目錄下面就可以使用了。

    下面先介紹一下生成excel文件要用的類:
    HSSFWorkbook 用于創建excel文件
    HSSFSheet 用于創建excel的書冊
    HSSFRow    用于創建一行
    HSSFCell     用于創建一個單元格
    HSSFCellStyle 用于創建一個單元格的格式
    HSSFFont    用于創建一個單元格的字體格式
    下面用本人寫的一個通用的工具類作為例子說明一下生成文件的方法
    (這里只列出部分代碼,詳細的請看附件的源碼,如果要使用附件的代碼,請保留原創人的名字)
    public   String createFile(List<Hashtable> hlist)//根據傳入的參數讀取數據,這里用了范型指定參數是hashtable類型的list
    {
    HSSFWorkbook wb 
    = new HSSFWorkbook();//創建excel文件
    for(int hcount=0;hcount<hlist.size();hcount++)
    {
    Hashtable ha 
    = hlist.get(hcount);//獲取第hcount個元素
    HSSFSheet sheettemp = wb.createSheet();
    wb.setSheetName(hcount,(String)ha.get(
    "name"),(short)1);//新建一個sheet
    HSSFRow rowtitle = sheettemp.createRow((short)0);//添加表頭
           HSSFCell celltitle = rowtitle.createCell((short)0);
           celltitle.setEncoding(HSSFCell.ENCODING_UTF_16);
    //設置字體編碼
           celltitle.setCellValue((String)ha.get("title"));//設置表頭內容
           rowtitle = sheettemp.createRow((short)1);//新增一行用于存放表頭內容
           String[] fields = (String[])ha.get("field");//獲取列頭
           sheettemp.addMergedRegion(new Region(0,(short)0,0,(short)(fields.length-1)));//合并第一行
           rowtitle = sheettemp.getRow(0);//獲得第一行的引用
           celltitle = rowtitle.getCell((short)0);//獲得第一行第一個單元格的引用
           setTitleStyle(wb,celltitle);//設置表頭格式
           HSSFRow rowfield = sheettemp.createRow((short)1);//新增一行用于存放列頭內容
           for(int i = 0;i<fields.length;i++)//根據獲取到的列頭數據,循環設置列頭的內容
           {
           HSSFCell cellfield 
    = rowfield.createCell((short)i);
           cellfield.setEncoding(HSSFCell.ENCODING_UTF_16);
           cellfield.setCellValue(fields[i]);
           setFieldStyle(wb,cellfield);
    //設置列頭格式
           int xx = cellfield.getStringCellValue().length();
           sheettemp.setColumnWidth((
    short) i,(short)(600*xx));
           }

           List listtemp 
    = (List)ha.get("body");//獲取表格內容
           Object[] rowtemp = null;
           
    int count = 0;
           
    for(Iterator it = listtemp.iterator();it.hasNext();)//迭代生成數據
           {
            rowtemp 
    = (Object[])it.next();
            HSSFRow rowbody 
    = sheettemp.createRow((short)(count+2));
            
    for(int i = 0;i<rowtemp.length;i++)
            
    {
            HSSFCell cellbody 
    = rowbody.createCell((short)i);
            cellbody.setEncoding(HSSFCell.ENCODING_UTF_16);
            cellbody.setCellValue((String)rowtemp[i]);
            }

            count
    ++;
           }

    }

    FileOutputStream fileOut;
    try {
    fileOut 
    = new FileOutputStream(setFilepath());//生成文件
    try {
    wb.write(fileOut);
    }
     catch (IOException e) {
    System.out.println(e.toString());
    }

           
    try {
    fileOut.close();
    }
     catch (IOException e) {
    System.out.println(e.toString());
    }

    }
     catch (FileNotFoundException e) {
    System.out.println(e.toString());
    }

    return filename;
    }


    最后說明一下附件的各個類的作用:
    Report.java 接口類,所有的獲取數據的類必須實現這個接口,以便生成文件時統一管理;
    ExcelContent.java 實現了Report接口,負責獲取數據并組裝到hashtable;
    ReportTool.java 根據傳入的參數生成excel文件,并返回生成的文件名;
    CreateReport.java 被外部程序調用,負責獲取數據和把數據傳遞給ReportTool,最后生成excel文件,返回生成的文件名給調用者。
    posted on 2008-11-25 16:34 Vincent-chen 閱讀(508) 評論(0)  編輯  收藏 所屬分類: POI 、Print
    主站蜘蛛池模板: 猫咪www免费人成网站| 久久一本岛在免费线观看2020| 免费国产综合视频在线看| 亚欧乱色国产精品免费视频| 亚洲综合在线成人一区| 免费va人成视频网站全| 久久久免费的精品| 国产亚洲视频在线观看网址| 亚洲国产成人久久综合碰碰动漫3d| 四虎成人免费网址在线| 久久精品国产免费| 日韩欧美亚洲国产精品字幕久久久 | 亚洲国产熟亚洲女视频| 福利片免费一区二区三区| 亚洲va在线va天堂va四虎| 国产三级电影免费观看| 18禁止看的免费污网站| fc2成年免费共享视频网站| 亚洲在成人网在线看| 亚洲午夜国产精品无码老牛影视| 国产精品久久久久免费a∨| 国产精品综合专区中文字幕免费播放 | 九一在线完整视频免费观看| 亚洲一区二区久久| 亚洲成AV人片在WWW色猫咪| 在线免费观看韩国a视频| 18禁止看的免费污网站| 你是我的城池营垒免费观看完整版| 亚洲中文字幕久久精品无码A| 久久精品国产亚洲AV麻豆不卡| 国产yw855.c免费视频| 一二三四免费观看在线电影| 久久免费高清视频| 在线视频网址免费播放| 美女黄色免费网站| 亚洲人成人网站18禁| 亚洲激情电影在线| 亚洲乱亚洲乱淫久久| 亚洲第一AV网站| 国产乱辈通伦影片在线播放亚洲 | 无人在线观看完整免费版视频|