<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基金下面的一個(gè)開源項(xiàng)目,在[url]http://www.apache.org/dyn/closer.cgi/jakarta/poi/[/url] 可以下載到poi的包
    下載以后把解壓得到的文件加到web-inf下面的lib目錄下面就可以使用了。

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

           List listtemp 
    = (List)ha.get("body");//獲取表格內(nèi)容
           Object[] rowtemp = null;
           
    int count = 0;
           
    for(Iterator it = listtemp.iterator();it.hasNext();)//迭代生成數(shù)據(jù)
           {
            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;
    }


    最后說明一下附件的各個(gè)類的作用:
    Report.java 接口類,所有的獲取數(shù)據(jù)的類必須實(shí)現(xiàn)這個(gè)接口,以便生成文件時(shí)統(tǒng)一管理;
    ExcelContent.java 實(shí)現(xiàn)了Report接口,負(fù)責(zé)獲取數(shù)據(jù)并組裝到hashtable;
    ReportTool.java 根據(jù)傳入的參數(shù)生成excel文件,并返回生成的文件名;
    CreateReport.java 被外部程序調(diào)用,負(fù)責(zé)獲取數(shù)據(jù)和把數(shù)據(jù)傳遞給ReportTool,最后生成excel文件,返回生成的文件名給調(diào)用者。
    posted on 2008-11-25 16:34 Vincent-chen 閱讀(514) 評(píng)論(0)  編輯  收藏 所屬分類: POIPrint
    主站蜘蛛池模板: 特a级免费高清黄色片| 国产免费卡一卡三卡乱码| 特级毛片全部免费播放a一级| 亚洲国产精品久久久久久| 免费在线观看黄网| 男男AV纯肉无码免费播放无码| 3344在线看片免费| 久久精品国产亚洲AV天海翼| 亚洲人成网国产最新在线| 亚洲第一中文字幕| 亚洲精品白浆高清久久久久久| 免费看小12萝裸体视频国产| 在线v片免费观看视频| 99久久99久久免费精品小说| 成人免费无码H在线观看不卡| 国产成人高清亚洲一区91| 亚洲三级高清免费| 亚洲午夜一区二区电影院| 麻豆亚洲AV永久无码精品久久 | 国产美女亚洲精品久久久综合| 日本免费一区尤物| 午夜私人影院免费体验区| 日本阿v免费费视频完整版| 亚在线观看免费视频入口| 日韩免费高清播放器| 男女一边桶一边摸一边脱视频免费 | 亚洲人成网站日本片| 久久久久亚洲AV无码永不| 久久精品亚洲综合一品| 亚洲国产精品成人久久| 国产亚洲情侣一区二区无码AV| 波多野结衣免费视频观看| 国产成人免费全部网站| 国产免费资源高清小视频在线观看| 免费电视剧在线观看| 国产精品免费观看久久| 毛片a级毛片免费观看免下载 | 亚洲狠狠色丁香婷婷综合| 亚洲人成网站免费播放| 亚洲精品无码久久久久A片苍井空| 亚洲欧洲无卡二区视頻|