中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的poi技術怎樣讀取和導入Excel

發布時間:2021-10-29 10:34:35 來源:億速云 閱讀:213 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關Java的poi技術怎樣讀取和導入Excel,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

項目結構:

Java的poi技術怎樣讀取和導入Excel

用到的Excel文件:

Java的poi技術怎樣讀取和導入Excel

XlsMain .java 類

//該類有main方法,主要負責運行程序,同時該類中也包含了用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>   *   *         參考地址:http://hao0610.iteye.com/blog/1160678   *   */ 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文件內容       *       * @return List<XlsDto>對象       * @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>();          // 循環工作表Sheet          for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {              HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);              if (hssfSheet == null) {                  continue;              }              // 循環行Row              for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {                  HSSFRow hssfRow = hssfSheet.getRow(rowNum);                  if (hssfRow == null) {                      continue;                  }                  xlsDto = new XlsDto();                  // 循環列Cell                  // 0學號 1姓名 2學院 3課程名 4 成績                  // 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中的每一個格子       * @return Excel中每一個格子中的值       */     @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) {              // 返回數值類型的值              return String.valueOf(hssfCell.getNumericCellValue());          } else {              // 返回字符串類型的值              return String.valueOf(hssfCell.getStringCellValue());          }      }     }

XlsDto2Excel.java類

//該類主要負責向Excel(2003版)中插入數據

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實體類的一個對象       * @throws Exception       *             在導入Excel的過程中拋出異常       */     public static void xlsDto2Excel(List<XlsDto> xls) throws Exception {          // 獲取總列數          int CountColumnNum = xls.size();          // 創建Excel文檔          HSSFWorkbook hwb = new HSSFWorkbook();          XlsDto xlsDto = null;          // sheet 對應一個工作頁          HSSFSheet sheet = hwb.createSheet("pldrxkxxmb");          HSSFRow firstrow = sheet.createRow(0); // 下標為0的行開始          HSSFCell[] firstcell = new HSSFCell[CountColumnNum];          String[] names = new String[CountColumnNum];          names[0] = "學號";          names[1] = "姓名";          names[2] = "學院";          names[3] = "課程名";          names[4] = "成績";          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++) {              // 創建一行              HSSFRow row = sheet.createRow(i + 1);              // 得到要插入的每一條記錄              xlsDto = xls.get(i);              for (int colu = 0; colu <= 4; colu++) {                  // 在一行內循環                  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());              }          }          // 創建文件輸出流,準備輸出電子表格          OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls");          hwb.write(out);          out.close();          System.out.println("數據庫導出成功");      }     }

XlsDto .java類

//該類是一個實體類

public class XlsDto {      /**       * 選課號       */     private Integer xkh;      /**       * 學號       */     private String xh;      /**       * 姓名       */     private String xm;      /**       * 學院       */     private String yxsmc;      /**       * 課程號       */     private Integer kch;      /**       * 課程名       */     private String kcm;      /**       * 成績       */     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;      }         }

后臺輸出:

數據庫導出成功

1.0 hongten 信息技術學院 計算機網絡應用基礎 80.0

2.0 王五 信息技術學院 計算機網絡應用基礎 81.0

3.0 李勝基 信息技術學院 計算機網絡應用基礎 82.0

4.0 五班古 信息技術學院 計算機網絡應用基礎 83.0

5.0 蔡詩蕓 信息技術學院 計算機網絡應用基礎 84.0

上述就是小編為大家分享的Java的poi技術怎樣讀取和導入Excel了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郁南县| 赤城县| 福清市| 富民县| 准格尔旗| 沁源县| 弥勒县| 夏津县| 喀喇| 岳阳县| 吴旗县| 常山县| 威远县| 托克托县| 城口县| 新竹县| 诸暨市| 新津县| 湘西| 张家川| 呼伦贝尔市| 特克斯县| 青浦区| 奉化市| 太湖县| 徐州市| 九台市| 喀什市| 双桥区| 大冶市| 柳林县| 额济纳旗| 威远县| 陈巴尔虎旗| 长白| 婺源县| 都匀市| 保德县| 张家界市| 涿鹿县| 和龙市|