亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

POI原生導入讀取EXCEL方法

發布時間:2020-08-07 01:51:55 來源:網絡 閱讀:464 作者:nineteens 欄目:編程語言

  POI原生導入讀取EXCEL方法

  import org.apache.poi.hssf.usermodel.*;

  import org.apache.poi.poifs.filesystem.POIFSFileSystem;

  import java.io.FileInputStream;

  import java.io.FileNotFoundException;

  import java.io.IOException;

  import java.io.InputStream;

  import java.text.SimpleDateFormat;

  import java.util.Date;

  import java.util.HashMap;

  import java.util.Map;

  public class ReadExcelUtil {

  private POIFSFileSystem fs;

  private HSSFWorkbook wb;

  private HSSFSheet sheet;

  private HSSFRow row;

  /**

  * 讀取Excel表格表頭的內容

  * @param is

  * @return String 表頭內容的數組

  */

  public String[] readExcelTitle(InputStream is) {

  try {

  fs = new POIFSFileSystem(is);

  wb = new HSSFWorkbook(fs);

  } catch (IOException e) {

  e.printStackTrace();

  }

  sheet = wb.getSheetAt(0);

  //得到首行的row

  row = sheet.getRow(0);

  // 標題總列數

  int colNum = row.getPhysicalNumberOfCells();

  String[] title = new String[colNum];

  for (int i = 0; i < colNum; i++) {

  title[i] = getCellFormatValue(row.getCell((short) i));

  }

  return title;

  }

  /**

  * 讀取Excel數據內容

  * @param is

  * @return Map 包含單元格數據內容的Map對象

  */

  public Map readExcelContent(InputStream is) {

  Map content = new HashMap();

  String str = "";

  String strCell = "";

  try {

  fs = new POIFSFileSystem(is);

  wb = new HSSFWorkbook(fs);

  } catch (IOException e) {

  e.printStackTrace();

  }

  sheet = wb.getSheetAt(0);

  // 得到總行數

  int rowNum = sheet.getLastRowNum();

  //由于第0行和第一行已經合并了 在這里索引從2開始

  row = sheet.getRow(2);

  int colNum = row.getPhysicalNumberOfCells();

  // 正文內容應該從第二行開始,第一行為表頭的標題

  for (int i = 2; i <= rowNum; i++) {

  row = sheet.getRow(i);

  int j = 0;

  while (j < colNum) {

  strCell = getStringCellValue(row.getCell(j));

  str += strCell + "-";

  // str +=row.getCell((short) j) + "^";

  j++;

  }

  content.put(i, str);

  str = "";

  }

  return content;

  }

  /**

  * 獲取單元格數據內容為字符串類型的數據

  *

  * @param cell Excel單元格

  * @return String 單元格數據內容

  */

  private String getStringCellValue(HSSFCell cell) {

  String strCell = "";

  switch (cell.getCellType()) {

  case HSSFCell.CELL_TYPE_STRING:

  strCell = cell.getStringCellValue();

  break;

  case HSSFCell.CELL_TYPE_NUMERIC:

  strCell = String.valueOf((int)cell.getNumericCellValue());

  break;

  case HSSFCell.CELL_TYPE_BOOLEAN:

  strCell = String.valueOf(cell.getBooleanCellValue());

  break;

  case HSSFCell.CELL_TYPE_BLANK:

  strCell = "";

  break;

  default:

  strCell = "";

  break;

  }

  if (strCell.equals("") || strCell == null) {

  return "";

  }

  if (cell == null) {

  return "";

  }

  return strCell;

  }

  /**

  * 獲取單元格數據內容為日期類型的數據

  *

  * @param cell

  * Excel單元格

  * @return String 單元格數據內容

  */

  private String getDateCellValue(HSSFCell cell) {

  String result = "";

  try {

  int cellType = cell.getCellType();

  if (cellType == HSSFCell.CELL_TYPE_NUMERIC) {

  Date date = cell.getDateCellValue();

  result = (date.getYear() + 1900) + "-" + (date.getMonth() + 1)

  + "-" + date.getDate();

  } else if (cellType == HSSFCell.CELL_TYPE_STRING) {

  String date = getStringCellValue(cell);

  result = date.replaceAll("[年月]", "-").replace("日", "").trim();

  } else if (cellType == HSSFCell.CELL_TYPE_BLANK) {

  result = "";

  }

  } catch (Exception e) {

  System.out.println("日期格式不正確!");

  e.printStackTrace();

  }

  return result;

  }

  /**

  * 根據HSSFCell類型設置數據

  * @param cell

  * @return

  */

  private String getCellFormatValue(HSSFCell cell) {

  String cellvalue = "";

  if (cell != null) {

  // 判斷當前Cell的Type

  switch (cell.getCellType()) {

  // 如果當前Cell的Type為NUMERIC

  case HSSFCell.CELL_TYPE_NUMERIC:

  case HSSFCell.CELL_TYPE_FORMULA: {

  // 判斷當前的cell是否為Date

  if (HSSFDateUtil.isCellDateFormatted(cell)) {

  Date date = cell.getDateCellValue();

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

  cellvalue = sdf.format(date);

  }無錫婦科醫院××× http://wapyyk.39.net/wx/zonghe/fc96e.html

  // 如果是純數字

  else {

  // 取得當前Cell的數值

  cellvalue = String.valueOf(cell.getNumericCellValue());

  }

  break;

  }

  // 如果當前Cell的Type為STRIN

  case HSSFCell.CELL_TYPE_STRING:

  // 取得當前的Cell字符串

  cellvalue = cell.getRichStringCellValue().getString();

  break;

  // 默認的Cell值

  default:

  cellvalue = " ";

  }

  } else {

  cellvalue = "";

  }

  return cellvalue;

  }

  public static void main(String[] args) {

  try {

  // 對讀取Excel表格標題測試

  InputStream is = new FileInputStream("d:\\test2.xls");

  ReadExcelUtil excelReader = new ReadExcelUtil();

  String[] title = excelReader.readExcelTitle(is);

  System.out.println("獲得Excel表格的標題:");

  for (String s : title) {

  System.out.print(s + " ");

  }

  System.out.println();

  // 對讀取Excel表格內容測試

  InputStream is2 = new FileInputStream("d:\\test2.xls");

  Map map = excelReader.readExcelContent(is2);

  System.out.println("獲得Excel表格的內容:");

  //這里由于xls合并了單元格需要對索引特殊處理

  for (int i = 2; i <= map.size()+1; i++) {

  System.out.println(map.get(i));

  }

  } catch (FileNotFoundException e) {

  System.out.println("未找到指定路徑的文件!");

  e.printStackTrace();

  }

  }

  }


向AI問一下細節

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

AI

化隆| 耿马| 眉山市| 兴化市| 台北县| 南江县| 宝兴县| 富阳市| 鸡泽县| 新化县| 焉耆| 广西| 舒兰市| 罗定市| 若尔盖县| 五河县| 沙田区| 二连浩特市| 米脂县| 新闻| 乌鲁木齐市| 安达市| 大宁县| 苏尼特左旗| 武穴市| 丹阳市| 乌拉特中旗| 扬州市| 长海县| 平安县| 获嘉县| 大田县| 根河市| 礼泉县| 额尔古纳市| 北辰区| 柯坪县| 泰宁县| 五常市| 株洲县| 仁布县|