麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

java poi 導入excel

2019-11-15 00:30:50
字體:
來源:轉載
供稿:網友
java poi 導入Excel

最近項目需要導入excel,網上有很多例子,自己整合記錄下,兼容2003和2007,暫時沒有添加圖片處理功能。

所需jar包 http://pan.baidu.com/s/1sjPuWDR

package example.poi;import java.io.*;import java.text.DecimalFormat;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.*;public class ImportExcel {   PRivate Workbook wb = null; private Sheet sheet = null; private Row row = null; private int sheetNum = 0; private int rowNum = 0; private FileInputStream fis = null; private File file = null; private DecimalFormat df = new DecimalFormat("0"); public ImportExcel() {  super(); } public void setSheetNum(int sheetNum) {  this.sheetNum = sheetNum; } public void setRowNum(int rowNum) {  this.rowNum = rowNum; } public void setFile(File file) {  this.file = file; } /**  * 讀取excel文件獲得HSSFWorkbook對象  * @throws IOException  */ public void open(String filePath) throws IOException {  if(validateExcel(filePath)) {   file = new File(filePath);   fis = new FileInputStream(file);   if(isExcel2003(filePath)) {    wb = new HSSFWorkbook(fis);   } else {    wb = new XSSFWorkbook(fis);   }   fis.close();  } }   /**  * 獲取sheet表數目  * @return sheet表數目  */ public int getSheetCount() {  int sheetCount = -1;  sheetCount = wb.getNumberOfSheets();  return sheetCount; }   /**  * 獲取sheetNum下的記錄行數  * @return 記錄行數  */ public int getRowCount() {  if(wb == null) {   System.err.println("----------->WorkBook為空");  }  Sheet sheet = wb.getSheetAt(this.sheetNum);  int rowCount = -1;  rowCount = sheet.getLastRowNum();  return rowCount; }   /**  * 獲取指定sheetNum的記錄行數  * @param sheetNum 表編號  * @return 記錄行數  */ public int getRowCount(int sheetNum) {  Sheet sheet = wb.getSheetAt(sheetNum);  int rowCount = -1;  rowCount = sheet.getLastRowNum();  return rowCount; }   /**  * 得到指定行的內容  * @param lineNum 行數  * @return 內容  */ public String[] readExcelLine(int lineNum) {  return readExcelLine(this.sheetNum, lineNum); }   /**  * 獲取指定工作表和行數的內容  * @param sheetNum 表編號  * @param lineNum 行數  * @return 內容  */ public String[] readExcelLine(int sheetNum, int lineNum) {  if(sheetNum < 0 || lineNum < 0) {   return null;  }  String[] strExcelLine = null;  try {   sheet = wb.getSheetAt(sheetNum);   row = sheet.getRow(lineNum);       int cellCount = row.getLastCellNum();   strExcelLine = new String[cellCount + 1];   for(int i = 0; i <= cellCount; i++) {    strExcelLine[i] = readStringExcelCell(lineNum, i);   }  } catch (Exception e) {   e.printStackTrace();  }  return strExcelLine; }   /**  * 獲取指定列的內容  * @param cellNum 列編號  * @return 內容  */ public String readStringExcelCell(int cellNum) {  return readStringExcelCell(this.rowNum, cellNum); }   /**  * 獲取指定行和列編號的內容  * @param rowNum 行編號  * @param cellNum 列編號  * @return 內容  */ public String readStringExcelCell(int rowNum, int cellNum) {  return readStringExcelCell(this.sheetNum, rowNum, cellNum); }   /**  * 獲取指定工作表、行、列的內容  * @param sheetNum 表編號  * @param rowNum 行編號  * @param cellNum 列編號  * @return 內容  */ public String readStringExcelCell(int sheetNum, int rowNum, int cellNum) {  if(sheetNum < 0 || rowNum < 0) {   return "";  }  String strExcelCell = "";  try {   sheet = wb.getSheetAt(sheetNum);   row = sheet.getRow(rowNum);       if(row.getCell(cellNum) != null) {    switch(row.getCell(cellNum).getCellType()) {    case HSSFCell.CELL_TYPE_FORMULA:     strExcelCell = "FORMULA";     break;    case HSSFCell.CELL_TYPE_NUMERIC:     //strExcelCell = String.valueOf(row.getCell(cellNum).getNumericCellValue());     //防止科學計數,不需要的話可以用上一行     strExcelCell = decimalFormat(row.getCell(cellNum).getNumericCellValue());     break;    case HSSFCell.CELL_TYPE_STRING:     strExcelCell = row.getCell(cellNum).getStringCellValue();     break;    case HSSFCell.CELL_TYPE_BLANK:     strExcelCell = "";     break;    default:     strExcelCell = "";     break;    }   }  } catch (Exception e) {   e.printStackTrace();  }  return strExcelCell; }   /**  * 測試  * @param args  */ public static void main(String[] args) {  String filePath = "C://Users//Administrator//Desktop//工作簿1.xlsx";  ImportExcel ie = new ImportExcel();  try {   ie.open(filePath);  } catch (IOException e) {   e.printStackTrace();  }  ie.setSheetNum(0);  int count = ie.getRowCount();  for (int i = 0; i <= count; i++) {   String[] rows = ie.readExcelLine(i);   for (int j = 0; j < rows.length; j++) {    System.out.print(rows[j] + " ");   }   System.out.print("/n");  } }   /**  * 驗證文件是否存在以及是否是excel文件  * @param filePath  * @return 結果  */ public boolean validateExcel(String filePath) {  if(filePath == null || ! (isExcel2003(filePath) || isExcel2007(filePath))) {   System.err.println("文件不是excel文件!");   return false;  }  File file = new File(filePath);  if(file == null || ! file.exists()) {   System.err.println("文件不存在!");   return false;  }  return true; }   /**  * 判斷是否是2003版excel  * @param filePath 文件路徑  * @return 結果  */ public boolean isExcel2003(String filePath) {  return filePath.matches("^.+//.(?i)(xls)$"); }   /**  * 判斷是否是2007版excel  * @param filePath 文件路徑  * @return 結果  */ public boolean isExcel2007(String filePath) {  return filePath.matches("^.+//.(?i)(xlsx)$"); }   /**  * 將獲取到的數據類型轉換成String防止科學計數法  * @param decimal 數據  * @return 結果  */ public String decimalFormat(Double decimal) {  return df.format(decimal); }}

內容借鑒:

http://download.csdn.net/detail/wangquanzheng/3526296

http://blog.csdn.net/mmm333zzz/article/details/7962377


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久久久久久久久av | 久久网站热最新地址4 | 欧美成人激情在线 | 日韩电影av在线 | 成人毛片网 | 娇妻被各种姿势c到高潮小说 | 欧美毛片| 黄色电影免费提供 | 狠狠干夜夜草 | 欧美一区在线观看视频 | 黄色特级一级片 | 欧美成人精品h版在线观看 久久久久久三区 | 视频一区 日韩 | 性明星video另类hd | 视频国产一区二区 | 国产精品久久久久久久久久东京 | 宅男噜噜噜66国产在线观看 | 国人精品视频在线观看 | 欧美在线a | 最新午夜综合福利视频 | 国产免费激情视频 | 男男啪羞羞视频网站 | 9999视频| 激情网站视频 | 国产成人综合在线视频 | 亚洲va久久久噜噜噜久久男同 | 国产精品一区二区手机在线观看 | av成人免费 | 日本在线视频免费观看 | 日本在线播放一区二区三区 | 色人阁在线视频 | 一级网站 | 欧美一级爱爱 | 韩毛片 | 欧美成人一区二区三区 | 久久久久久久久久91 | 精品国产一二区 | 最新亚洲国产 | 成人免费观看49www在线观看 | 免费看性xxx高清视频自由 | 成人精品一区二区三区中文字幕 |