<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 閱讀(508) 評(píng)論(0)  編輯  收藏 所屬分類: POIPrint
    主站蜘蛛池模板: 亚洲日韩精品A∨片无码| 亚洲av女电影网| 国产日韩在线视频免费播放| 中文字幕亚洲综合精品一区| 亚洲无码视频在线| 亚洲精品成人网站在线观看 | 亚洲熟妇成人精品一区| 久久亚洲国产午夜精品理论片| 免费国产黄网站在线观看视频 | 亚洲国产精品无码久久九九大片 | 亚洲精品国产字幕久久不卡| 国产精品久久久久影院免费| aa级一级天堂片免费观看| 久久不见久久见免费视频7| 亚洲综合中文字幕无线码| 亚洲精品国产成人专区| 亚洲日韩一页精品发布| 亚洲M码 欧洲S码SSS222| 一级毛片**不卡免费播| a毛看片免费观看视频| 黄色一级毛片免费| 在线观看亚洲免费| 亚洲另类激情综合偷自拍图| 免费一级一片一毛片| 免费国产成人高清视频网站| 99久久免费观看| 无码专区AAAAAA免费视频| 最新亚洲精品国偷自产在线| 亚洲中文久久精品无码1| 亚洲激情黄色小说| 中文字幕亚洲日韩无线码| 又黄又爽又成人免费视频| 免费人成大片在线观看播放电影| 亚洲精品私拍国产福利在线| 久久精品国产精品亚洲艾| 亚洲av无码一区二区乱子伦as| 在线视频免费国产成人| 免费观看男人免费桶女人视频| 亚洲av午夜电影在线观看| 亚洲av无码专区首页| 亚洲爆乳无码一区二区三区|