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

首頁 > 編程 > Java > 正文

Java解析Excel并把數據保存到數據庫中

2019-11-06 07:16:53
字體:
來源:轉載
供稿:網友

java解析Excel,采用的Apache的poi,其實不難,需求是把每一列的數據解析出來,因為每一列的數據不等,解析Excel是一行一行的解析的,其實根據列解析也不違背,只不過需要判斷下數據是否為空,先獲得某一列,然后一行行的解析下去。保存到數據庫采用mybatis,因為參數是list,所以這邊用批量插入。工程已經上傳到GitHub上,傳送門:https://github.com/loupXing/looper

解析Excel的代碼

package com.ymm.util;import java.io.FileInputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.log4j.Logger;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.ss.usermodel.WorkbookFactory;import com.ymm.dao.AreaDao;import com.ymm.dao.impl.AreaDaoImpl;import com.ymm.entity.CityDistrict;import com.ymm.entity.DistrictStreet;import com.ymm.entity.PRovinceCity;public class ReadExcel{    private static final Logger LOGGER = Logger.getLogger(ReadExcel.class);    private static List<ProvinceCity> provinceCities = new ArrayList<ProvinceCity>();    private static List<CityDistrict> cityDistricts = new ArrayList<CityDistrict>();    private static List<DistrictStreet> districtStreets = new ArrayList<DistrictStreet>();    /**     * 讀取Excel     *     * @param filePath     * @param sheetInex     */    public static void loadExcel(String filePath)    {        LOGGER.debug("enter loadExcel,filePath:" + filePath);        InputStream in = null;        Workbook workbook = null;        Sheet sheet = null;        try        {            in = new FileInputStream(filePath);            workbook = WorkbookFactory.create(in);            for (int i = 1; i < 4; i++)            {                sheet = workbook.getSheetAt(i);                getSheetData(sheet, i);            }        }        catch (Exception e)        {            e.printStackTrace();            LOGGER.error("load excel failed,desc:::" + e, e);        }    }    private static void getSheetData(Sheet sheet, int sheetInex)    {        AreaDao areaDao = new AreaDaoImpl();        int rowNum = sheet.getLastRowNum();        // 獲取第一行        Row rowFirst = sheet.getRow(0);        Row row = null;        Cell cell = null;        String cellValue = null;        int firstCellNum = rowFirst.getLastCellNum();        String firstValue = null;        String lastValue = null;                for (int i = sheetInex == 1 ? 2 : 0; i <= firstCellNum; i++)        {            for (int j = 0; j <= rowNum; j++)            {                row = sheet.getRow(j);                if (null != row)                {                    cell = row.getCell(i);                    if (null != cell)                    {                        cellValue = cell.getStringCellValue();                        if ((null != cellValue) && !"".equals(cellValue))                        {                            int indexN = cellValue.indexOf("N");                            String subValue = cellValue.substring(0, indexN);                            if (j == 0)                            {                                firstValue = subValue;                                lastValue = cellValue;                                continue;                            }                            if (sheetInex == 1)                            {                                ProvinceCity provinceCity = new ProvinceCity();                                provinceCity.setProvince(firstValue);                                provinceCity.setProvince_n(lastValue);                                provinceCity.setCity(subValue);                                provinceCity.setCity_n(cellValue);                                provinceCities.add(provinceCity);                            }                            if (sheetInex == 2)                            {                                CityDistrict cityDistrict = new CityDistrict();                                cityDistrict.setCity(firstValue);                                cityDistrict.setCity_n(lastValue);                                cityDistrict.setDistrict(subValue);                                cityDistrict.setDistrict_n(cellValue);                                cityDistricts.add(cityDistrict);                            }                            if (sheetInex == 3)                            {                                DistrictStreet districtStreet = new DistrictStreet();                                districtStreet.setDistrict(firstValue);                                districtStreet.setDistrict_n(lastValue);                                districtStreet.setStreet(subValue);                                districtStreet.setStreet_n(cellValue);                                districtStreets.add(districtStreet);                            }                        }                                            }                }            }        }                if (sheetInex == 1)        {            LOGGER.debug("provinceCities:" + provinceCities);            areaDao.insertProvinceCity(provinceCities);        }        if (sheetInex == 2)        {            LOGGER.debug("cityDistricts:" + cityDistricts);            areaDao.insertCityDistrict(cityDistricts);        }        if (sheetInex == 3)        {            LOGGER.debug("districtStreets:" + districtStreets);            areaDao.insertDistrictStreet(districtStreets);        }            }    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上犹县| 苏州市| 顺昌县| 昌黎县| 桐柏县| 平邑县| 博客| 油尖旺区| 贵南县| 湄潭县| 修武县| 沁水县| 阳春市| 加查县| 山阳县| 抚松县| 瑞昌市| 乐亭县| 天柱县| 塔城市| 奉化市| 泾源县| 桑日县| 沛县| 湘乡市| 区。| 宁乡县| 乌拉特后旗| 台北市| 浮山县| 盐亭县| 勐海县| 微博| 忻城县| 九江县| 明星| 长武县| 洞头县| 克东县| 宜城市| 佛坪县|