国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

hutool工具類(lèi)實(shí)現(xiàn)excel上傳 支持03和07

這篇具有很好參考價(jià)值的文章主要介紹了hutool工具類(lèi)實(shí)現(xiàn)excel上傳 支持03和07。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

感謝hutool工具類(lèi),讓java上傳excel 變得超級(jí)簡(jiǎn)便?。?!
一直以來(lái),excel表的導(dǎo)入有很多代碼,寫(xiě)一次忘一次,類(lèi)太多,要知道怎么獲取Workbook、Sheet、Cell、row等等,這么多類(lèi)不可能一直記的住,都是寫(xiě)過(guò)之后保存,使用的時(shí)候拿出來(lái)改改,更煩人的是針對(duì)office03和07獲取方式還有區(qū)別。自從使用了hutool工具包,一切都變得那么絲滑。核心代碼僅有一行。同時(shí)支持03和07。

 ExcelReader excelReader = ExcelUtil.getReader(file.getInputStream());

使用步驟及代碼示例如下:
導(dǎo)入模板
hutool工具類(lèi)實(shí)現(xiàn)excel上傳 支持03和07,后端,hutool,excel導(dǎo)入,java

引入jar包

 		<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-poi</artifactId>
            <version>5.7.16</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

工具類(lèi),也可以放入service實(shí)現(xiàn)類(lèi)中

@Component
public class Excel07Utils {
	// static 屬性的注入,如果是放入service實(shí)現(xiàn)類(lèi)中,則不需要static修飾,直接注解注入
	// 第一種,set注入
    private static UserMapper userMapper;
    @Resource
    private void setUserMapper(UserMapper userMapper) {
        Excel07Utils.userMapper = userMapper;
    }
    // 第二種,lombok的set注入,需要引入lombok包
//    @Setter
//    private static UserMapper userMapper;
//    @Autowired
//    private void userMapper(UserMapper userMapper) {
//        setUserMapper(userMapper);
//    }

    /**
     * 導(dǎo)入excel
     * @param file
     */
    public static String importExcel(MultipartFile file) {
        List<User> userList = new ArrayList<>();
        try {
            // 核心操作,讀取上傳文件,轉(zhuǎn)換為 ExcelReader 對(duì)象,然后通過(guò)ExcelReader對(duì)象轉(zhuǎn)換成java類(lèi)型或?qū)ο?/span>
            ExcelReader excelReader = ExcelUtil.getReader(file.getInputStream());
            // 表頭字段檢查
            List<Object> firstRow = excelReader.readRow(0);
            if (!"賬號(hào)".equals(firstRow.get(0)) || !"姓名".equals(firstRow.get(1))) {
                return "請(qǐng)勿修改模板中的表頭字段";
            }
            //從第二行開(kāi)始獲取表格內(nèi)容(第一行是中文表頭)
            List<List<Object>> list = excelReader.read(1);
            if (list.isEmpty()) {
                return "數(shù)據(jù)為空";
            }
            // 檢查文件中是否有重復(fù)數(shù)據(jù)(例如賬號(hào)不允許重復(fù),一般是某個(gè)字段不允許重復(fù))
            // 利用set的不重復(fù)特性
            Set<Object> accountSet = new HashSet<>();
            for (List<Object> cell : list) {
                User user = new User();
                if (cell.size() < 2 || ObjectUtils.isEmpty(cell.get(0)) || ObjectUtils.isEmpty(cell.get(1))) {
                    return "數(shù)據(jù)存在空值";
                }
                user.setAccount(cell.get(0).toString());
                user.setName(cell.get(1).toString());
                userList.add(user);
                accountSet.add(cell.get(0).toString());
            }
            if (list.size() != accountSet.size()) {
                return "文件中有重復(fù)數(shù)據(jù)";
            }
            // 檢查是否與數(shù)據(jù)庫(kù)中數(shù)據(jù)重復(fù)
            for (User user : userList) {
                User entity = userMapper.selectByAccount(user.getAccount());
                if (!ObjectUtils.isEmpty(entity)) {
                    return  "數(shù)據(jù)庫(kù)中已存在此賬號(hào):" + user.getAccount();
                }
            }
            //保存至數(shù)據(jù)庫(kù)
//            userMapper.saveBatch(userList);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }
}

核心代碼:ExcelReader excelReader = ExcelUtil.getReader(file.getInputStream());
核心類(lèi):ExcelReader
除了這一行核心代碼,下面的全部是業(yè)務(wù)上的處理,都可以刪除和修改。
如果這一行核心代碼記不住的話,那就記住一個(gè)ExcelReader 核心類(lèi)即可。通過(guò)ExcelReader可以獲取業(yè)務(wù)數(shù)據(jù)和其他表格的操作。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-517185.html

到了這里,關(guān)于hutool工具類(lèi)實(shí)現(xiàn)excel上傳 支持03和07的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包