<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
    主站蜘蛛池模板: 日本中文字幕免费看| 老司机福利在线免费观看| 在线观看免费无码专区| 亚洲成年人啊啊aa在线观看| 精品免费AV一区二区三区| 四虎亚洲国产成人久久精品| 午夜在线亚洲男人午在线| 免费一级一片一毛片| 一级做a爰片性色毛片免费网站| 国产黄色一级毛片亚洲黄片大全| 一本到卡二卡三卡免费高| 亚洲欧洲精品无码AV| 免费av一区二区三区| 久久综合亚洲色一区二区三区| 国产高清不卡免费在线| 91在线亚洲综合在线| 四虎影视在线永久免费观看| 亚洲GV天堂无码男同在线观看| 免费国产成人午夜电影| 中文字幕成人免费高清在线视频| 亚洲成在人线av| 福利免费观看午夜体检区| 亚洲AV无码成人精品区狼人影院| 国产精品亚洲综合一区| 久久久久成人片免费观看蜜芽 | 成人毛片18女人毛片免费96 | 五月婷婷免费视频| 久久香蕉国产线看观看亚洲片| 6080午夜一级毛片免费看| 亚洲人精品亚洲人成在线| 亚洲一区二区三区在线视频| 一级特黄aa毛片免费观看| 亚洲日本VA午夜在线电影| 亚洲一区二区三区乱码A| 99久在线国内在线播放免费观看| 亚洲自国产拍揄拍| 中文字幕在亚洲第一在线| 黄在线观看www免费看| 免费看黄网站在线看| 亚洲黄色免费网站| 亚洲精品A在线观看|