国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

java的poi技術(shù)讀取和導(dǎo)入Excel實(shí)例

2019-11-26 13:34:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

報(bào)表輸出是Java應(yīng)用開(kāi)發(fā)中經(jīng)常涉及的內(nèi)容,而一般的報(bào)表往往缺乏通用性,不方便用戶進(jìn)行個(gè)性化編輯。Java程序由于其跨平臺(tái)特性,不能直接操縱Excel。因此,本文探討一下POI視線Java程序進(jìn)行Excel的讀取和導(dǎo)入。

項(xiàng)目結(jié)構(gòu):
java_poi_excel

用到的Excel文件:
xls

XlsMain .java 類

//該類有main方法,主要負(fù)責(zé)運(yùn)行程序,同時(shí)該類中也包含了用poi讀取Excel(2003版) import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;  /** *  * @author Hongten</br> *  *  */public class XlsMain {   public static void main(String[] args) throws IOException {    XlsMain xlsMain = new XlsMain();    XlsDto xls = null;    List<XlsDto> list = xlsMain.readXls();         try {      XlsDto2Excel.xlsDto2Excel(list);    } catch (Exception e) {      e.printStackTrace();    }    for (int i = 0; i < list.size(); i++) {      xls = (XlsDto) list.get(i);      System.out.println(xls.getXh() + "  " + xls.getXm() + "  "          + xls.getYxsmc() + "  " + xls.getKcm() + "  "          + xls.getCj());    }   }   /**   * 讀取xls文件內(nèi)容   *    * @return List<XlsDto>對(duì)象   * @throws IOException   *       輸入/輸出(i/o)異常   */  private List<XlsDto> readXls() throws IOException {    InputStream is = new FileInputStream("pldrxkxxmb.xls");    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);    XlsDto xlsDto = null;    List<XlsDto> list = new ArrayList<XlsDto>();    // 循環(huán)工作表Sheet    for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {      HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);      if (hssfSheet == null) {        continue;      }      // 循環(huán)行Row      for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {        HSSFRow hssfRow = hssfSheet.getRow(rowNum);        if (hssfRow == null) {          continue;        }        xlsDto = new XlsDto();        // 循環(huán)列Cell        // 0學(xué)號(hào) 1姓名 2學(xué)院 3課程名 4 成績(jī)        // for (int cellNum = 0; cellNum <=4; cellNum++) {        HSSFCell xh = hssfRow.getCell(0);        if (xh == null) {          continue;        }        xlsDto.setXh(getValue(xh));        HSSFCell xm = hssfRow.getCell(1);        if (xm == null) {          continue;        }        xlsDto.setXm(getValue(xm));        HSSFCell yxsmc = hssfRow.getCell(2);        if (yxsmc == null) {          continue;        }        xlsDto.setYxsmc(getValue(yxsmc));        HSSFCell kcm = hssfRow.getCell(3);        if (kcm == null) {          continue;        }        xlsDto.setKcm(getValue(kcm));        HSSFCell cj = hssfRow.getCell(4);        if (cj == null) {          continue;        }        xlsDto.setCj(Float.parseFloat(getValue(cj)));        list.add(xlsDto);      }    }    return list;  }   /**   * 得到Excel表中的值   *    * @param hssfCell   *      Excel中的每一個(gè)格子   * @return Excel中每一個(gè)格子中的值   */  @SuppressWarnings("static-access")  private String getValue(HSSFCell hssfCell) {    if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {      // 返回布爾類型的值      return String.valueOf(hssfCell.getBooleanCellValue());    } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {      // 返回?cái)?shù)值類型的值      return String.valueOf(hssfCell.getNumericCellValue());    } else {      // 返回字符串類型的值      return String.valueOf(hssfCell.getStringCellValue());    }  } }

XlsDto2Excel.java類

//該類主要負(fù)責(zé)向Excel(2003版)中插入數(shù)據(jù)import java.io.FileOutputStream;import java.io.OutputStream;import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;  public class XlsDto2Excel {   /**   *    * @param xls   *      XlsDto實(shí)體類的一個(gè)對(duì)象   * @throws Exception   *       在導(dǎo)入Excel的過(guò)程中拋出異常   */  public static void xlsDto2Excel(List<XlsDto> xls) throws Exception {    // 獲取總列數(shù)    int CountColumnNum = xls.size();    // 創(chuàng)建Excel文檔    HSSFWorkbook hwb = new HSSFWorkbook();    XlsDto xlsDto = null;    // sheet 對(duì)應(yīng)一個(gè)工作頁(yè)    HSSFSheet sheet = hwb.createSheet("pldrxkxxmb");    HSSFRow firstrow = sheet.createRow(0); // 下標(biāo)為0的行開(kāi)始    HSSFCell[] firstcell = new HSSFCell[CountColumnNum];    String[] names = new String[CountColumnNum];    names[0] = "學(xué)號(hào)";    names[1] = "姓名";    names[2] = "學(xué)院";    names[3] = "課程名";    names[4] = "成績(jī)";    for (int j = 0; j < CountColumnNum; j++) {      firstcell[j] = firstrow.createCell(j);      firstcell[j].setCellValue(new HSSFRichTextString(names[j]));    }    for (int i = 0; i < xls.size(); i++) {      // 創(chuàng)建一行      HSSFRow row = sheet.createRow(i + 1);      // 得到要插入的每一條記錄      xlsDto = xls.get(i);      for (int colu = 0; colu <= 4; colu++) {        // 在一行內(nèi)循環(huán)        HSSFCell xh = row.createCell(0);        xh.setCellValue(xlsDto.getXh());        HSSFCell xm = row.createCell(1);        xm.setCellValue(xlsDto.getXm());        HSSFCell yxsmc = row.createCell(2);        yxsmc.setCellValue(xlsDto.getYxsmc());        HSSFCell kcm = row.createCell(3);        kcm.setCellValue(xlsDto.getKcm());        HSSFCell cj = row.createCell(4);        cj.setCellValue(xlsDto.getCj());(xlsDto.getMessage());      }    }    // 創(chuàng)建文件輸出流,準(zhǔn)備輸出電子表格    OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls");    hwb.write(out);    out.close();    System.out.println("數(shù)據(jù)庫(kù)導(dǎo)出成功");  } } 

XlsDto .java類

//該類是一個(gè)實(shí)體類public class XlsDto {  /**   * 選課號(hào)   */  private Integer xkh;  /**   * 學(xué)號(hào)   */  private String xh;  /**   * 姓名   */  private String xm;  /**   * 學(xué)院   */  private String yxsmc;  /**   * 課程號(hào)   */  private Integer kch;  /**   * 課程名   */  private String kcm;  /**   * 成績(jī)   */  private float cj;  public Integer getXkh() {    return xkh;  }  public void setXkh(Integer xkh) {    this.xkh = xkh;  }  public String getXh() {    return xh;  }  public void setXh(String xh) {    this.xh = xh;  }  public String getXm() {    return xm;  }  public void setXm(String xm) {    this.xm = xm;  }  public String getYxsmc() {    return yxsmc;  }  public void setYxsmc(String yxsmc) {    this.yxsmc = yxsmc;  }  public Integer getKch() {    return kch;  }  public void setKch(Integer kch) {    this.kch = kch;  }  public String getKcm() {    return kcm;  }  public void setKcm(String kcm) {    this.kcm = kcm;  }  public float getCj() {    return cj;  }  public void setCj(float cj) {    this.cj = cj;  }   }

后臺(tái)輸出:

數(shù)據(jù)庫(kù)導(dǎo)出成功

1.0    hongten    信息技術(shù)學(xué)院    計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)    80.0
2.0    王五    信息技術(shù)學(xué)院    計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)    81.0
3.0    李勝基    信息技術(shù)學(xué)院    計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)    82.0
4.0    五班古    信息技術(shù)學(xué)院    計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)    83.0
5.0    蔡詩(shī)蕓    信息技術(shù)學(xué)院    計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)    84.0

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 库伦旗| 石家庄市| 鹰潭市| 伊春市| 梁山县| 萨迦县| 鲁甸县| 增城市| 五寨县| 洞口县| 平定县| 东明县| 子长县| 平湖市| 呈贡县| 鄂托克前旗| 六安市| 新化县| 赫章县| 宜兰县| 丰宁| 宜宾县| 刚察县| 罗江县| 团风县| 双鸭山市| 平山县| 城固县| 依安县| 昌吉市| 海丰县| 抚松县| 建始县| 大荔县| 海晏县| 特克斯县| 泰和县| 肥东县| 扎兰屯市| 锡林浩特市| 新沂市|