Excal导入

【Origin 2021 懒人版绘图教程】照做完全没问题 今天分享的Origin的绘图教程,超级简便,照着做,没问题,我用的是Origin 2021 中文版,对英语学渣很友好,附带一少部分Excal导入数据的操作,比上一次分享的Origin绘图更加详细。 阅读详情

excal导入

  • controller层
/**
 * 线索导入
 */
@PostMapping("importLeads/{createId}")
public YyptResponse outExcel(@RequestParam("file") MultipartFile[] file, @PathVariable("createId") Integer createId) {
    if (createId == null) {
        return YyptResponse.failure("导入人不id不能为空!");
    }
    for (MultipartFile multipartFile : file) {
        String s = leadsService.importLeads(multipartFile, createId);
        if (s != null) {
            return YyptResponse.failure("文件名称:"+multipartFile.getOriginalFilename()+"\n"+"出现异常原因:"+s);
        }
    }
    return YyptResponse.success(null);
}
  • service层
String importLeads(MultipartFile file,Integer createId);
  • serviceImpl层
@Service
@AllArgsConstructor
public class LeadsServiceImpl extends ServiceImpl<LeadsMapper, Leads> implements LeadsService {
    private final WechatExternalContactYtyfMapper wechatExternalContactYtyfMapper;


    @Override
    public String checkPhone(Leads leads) {
        if (leads == null || leads.getCreateId() == null) {
            return  "创建人id不能为空";
        }
        if (StringUtils.isEmpty(leads.getName())) {
            return "用户姓名不能为空";
        }
        if (StringUtils.isEmpty(leads.getPhone())) {
            return "电话不能为空";
        }
        //查询此线索的所对应的电话是否已是线索
        Integer count = this.getBaseMapper().selectCount(Wrappers.<Leads>lambdaQuery().eq(Leads::getPhone,
                leads.getPhone()));
        if (count>0){
            return SysConstants.REPEATED_CLUES;
        }
        //查询此线索的所对应的电话是否已是客户
        //todo 暂时无法确认wechatExternalContactYtyf表中的mobile是否唯一,先用集合取第一条记录
        List<UserDto> userList = wechatExternalContactYtyfMapper.getUserId(leads.getPhone());
        if (userList != null && userList.size() > 0) {
            //代表已经是客户
            UserDto userDto = userList.get(0);
            //因为已经是客户,所以将建立联系业务员跟建立时间存进
            leads.setBuildId(userDto.getUserId());
            leads.setBuildDate(userDto.getCreDate());
            //线索状态改为 成为客户
            leads.setStatus(SysConstants.LEADS_STATUS_SUCCESS);
        }

        //新线索存入
        this.baseMapper.insert(leads);
        return null;
    }

    @Override
    public String importLeads(MultipartFile file,Integer createId){

        ImportParams importParams = new ImportParams();
        //表格标题行数
        importParams.setTitleRows(1);
        //表头行数
        importParams.setHeadRows(1);
        //list集合用来将每一行数据存进一个leads对象
        List<Leads> leadsList = null;
        try {
            //参数1 excal文件的输入流,2 lead对象的class文件 3 importParams对象
            leadsList = ExcelImportUtil.importExcel(file.getInputStream(), Leads.class,importParams);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        Map<String,String> map=null;
        //将excal表格中的数据存入list集合中,对集合进行遍历
        for (int i = 0; i < leadsList.size(); i++) {
            Leads leads = leadsList.get(i);
            //将createId参数设置到lead对象中(代表此条数据是该创建人导入的)
            leads.setCreateId(createId);
           /*if (leads.getCreTime()!=null){
                try {
                    String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(sdf.parse(leads.getCreTime()));
                    leads.setCreateTime(LocalDateTime.parse(format,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                }catch (Exception e){
                    return "日期格式不正确,位于"+(i+1)+"条";
                }
            }*/
           //代表手机号重复了,该手机号已经是线索
            if (SysConstants.REPEATED_CLUES.equals(checkPhone(leads))) {
                if (map==null){
                    map=new HashMap<>();
                }
                map.put(leads.getName(),leads.getPhone());
            }

        }
        if (map!=null&&map.size()>0){
            return "除已有线索,都已成功导入!\n重复线索列表如下:"+map.toString();
        }
        return null;
    }
  • 实体类lead
package com.yypt.scrm.domain;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import java.util.Set;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * 潜在客户(线索)
 *
 * @author YangJinChuan
 */
@Data
public class Leads implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 线索id
     */
    @Excel(name="线索id")
    private String leadsId;

    /**
     * 姓名
     */
    @Excel(name="姓名")
    private String name;

    /**
     * 电话
     */
    @Excel(name="电话")
    private String phone;

    /**
     * 所在地
     */
    @Excel(name="所在地")
    private String address;

    /**
     * 流量来源
     */
    @Excel(name="流量来源")
    private String trafficSource;

    /**
     * 素材内容
     */
    @Excel(name = "素材内容")
    private String content;

    /**
     * 推广链接
     */
    @Excel(name="推广链接")
    private String sponsoredLinks;

    /**
     * 备注
     */
    @Excel(name="备注")
    private String remark;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /*
    @Excel(name="创建时间")
    @TableField(exist = false)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private String creTime;
    */

    /**
     * 最后更新时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 对接人id
     */
    private Integer dockingId;

    /**
     * 建立联系日期
     */
    private LocalDateTime buildDate;

    /**
     * 建立联系业务员
     */
    private Integer buildId ;

    /**
     * 创建人id
     */
    private Integer createId;

    /**
     * 0.初始 1.作废 2.指定成功 3.成为客户
     */
    private Integer status;
    @TableField(exist = false)
    private String dockingName;
    @TableField(exist = false)
    private String buildName;
    @TableField(exist = false)
    private String createName;
    @TableField(exist = false)
    private String roleCodeList;
    @TableField(exist = false)
    private Integer loginId;
    @TableField(exist = false)
    private Set<Integer> userSet;
}
ubuntu18.04 升级Ubuntu 20.04 Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。 阅读详情

相关推荐

Latex | IEEE双栏排版中长公式的排版

IEEE双栏排版中,有时候公式过于长了,过宽,导致单栏排版不下。

qq_43466146的博客 1万+

vue导入excal表格

vue导入excal表格 导入excal表格需要依赖俩个第三方插件 js-xlsx 由于 Export2Excel不仅依赖js-xlsx还依赖file-saver和script-loader npm install xlsx file-saver -S npm install script-loader -S -D 参考vue-element-admin 后台集成方案张中的excal模块 核心技术需要把excal返回的数据转化成后台所需要的数据 通过excal导入的数数据键值是汉字格式我们需要转化成对.

chenIsyyds的博客 271

Coursera | 离散数学概论(北大)| quiz答案

Coursera离散数学概论quiz答案Week1:数理逻辑:基本概念Week2:数理逻辑:命题逻辑及形式系统Week3:数理逻辑:谓词逻辑及形式系统Week4:集合论:集合代数   先放下Coursera上找的离散数学部分相关课程:   btw.线上学习拿证书还有很多,MOOC、edm等都可。   博主选了北京大学离散数学概论Discrete Mathematics Generality。Mooc上貌似也有,但是上课时间貌似不如Coursera灵活,Coursera时间自己调度,规定时间上完即可。目前课

小鱼干的博客 4126

vue中excal表格的导入和导出

注意:vue中要实现表格的导入与导出,首先要install两个依赖, npm install -S file-saver xlsx 和 npm install -D script-loader。其次,在项目src目录下新建一个文件夹vendor(名字随意),在此文件夹下放置两个文件Blob.js和Export2Excal.js(下载地址:http://files.cnblogs.com/fil...

junkaicool的博客 918

微分中值定理

文章目录证明根的存在性证明不等式微分中值定理有关的证明题解题方法题目1题目2题目3题目4题目5题目6题目7题目8(难) 微分中值定理:把函数改变量与一点的导数值联系起来 中值定理意义:将函数与导数联系起来 证明根的存在性 证明根的存在性:零点定理和罗尔定理 由于无法说明两端点异号,所以想罗尔定理 构造一个辅助函数,这个辅助函数的导数为要证的方程 这个辅助函数在两端点值相等,说明辅助函数的导数在0到1内存在0点。 这也就是为什么要构造一个导数为要证明的方程的原因 证明不等式 题目中出现了两点函

sparky的博客 4905

uniapp - 微信授权登录报错 errMsg“:“login:fail send“ | “code“:-100 | “innerCode“:-6,解决uni-app调用微信登录时没有响应且返回错误

uni-app,微信登录,微信登录报错,微信小程序,支付宝小程序,安卓app,苹果ios,nvue,H5网页网站,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,微信确认登录界面后点击登录报错,"errMsg":"login:failsend","errCode":-100,"code":-100,"innerCode":-6,都配置好了还是报错怎么办,uniapp微信授权登录报错,UniApph5对接微信登录出现错误,appid,应用签名,微信登陆,code:-100

🏆 前端领域优质创作者 1万+

navicat导入excal数据时,时间导入问题

navicat导入时间的时候可能会变成1900-10-01这样的结构 这种问题解决办法 1、将excal时间列变成转成yyyy/mm 2、Navicate中将时间字段类型改为varchar类型,然后将数据导入,查看导入时间正确,然后在将表中字段类型改回去,时间还是正确,问题解决 ...

djq8080的博客 3655

Ubuntu零基础入门到精通【3.10讲】:旧版本 Ubuntu 升级与迁移路线:从 20.04 到 24.04 的完整实战指南

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1248

excal文件导入到sqlite

excal数据导入到sqlite

TimerYJ 453

7.5华为OD机试真题 新系统 - 省超足球比赛获胜队伍计算 (Java/Py/C/C++/Js/Go)

7.5华为OD机试真题 新系统 - 省超足球比赛获胜队伍计算 (Java/Py/C/C++/Js/Go)

算法大师! 822

MTK平台Wi-Fi学习--wifi channel 通过国家码进行功率限制和wifi eFEM 基本配置和wifi Tx SEM问题

本文介绍了WiFi功率限制配置和eFEM硬件设置方法。在功率限制方面,通过国家码可针对不同信道设置功率上限,需在rlm_txpwr_init.h文件中配置信道和功率值(单位0.5dBm),WiFi6的HE_TB模式还可分RU设置。eFEM硬件配置需参考平台设计,注意VDET接口处理,首次使用建议提交HW/SW案例审核。软件配置需获取专用FEM包,包含NVRAM、GPIO等文件,按指导合并后版本才会切换为eFEM版本。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 484

Springboot实现复杂excal导入解析

Springboot怎么做导入解析,如何实现。

weixin_44656535的博客 207

[特殊字符] 从零构建携程/飞猪机票价格爬虫:Python异步抓取与反爬对抗实战

在出行决策、竞品分析、价格预测模型训练等场景中,稳定获取携程(Ctrip)和飞猪(Fliggy)的实时机票价格波动数据是刚需。然而,这两大平台均部署了业界顶尖的反爬体系——包括但不限于:动态请求签名(SignToken设备指纹采集(UACanvasWebGL接口参数加密(X-Sign_abtestcookie混淆)频率限制与 IP 封禁(滑动窗口 + 行为检测)目录前言:为什么需要自建机票价格爬虫?一、技术选型与项目架构1.1 核心技术栈1.2 系统架构图(文字描述)1.3 法律与道德声明。

2201_76125261的博客 339

EXCAL导入数据库 C#

using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.We

冷凝的专栏 991

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JAVA利用poi导出、导入excal文档,字体变色

引入配置 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <

一介书生的博客 687

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

.net core npoi 将excal 导入数据库

.net core npoi 将excal 导入数据库首先用vs 创建一个.net core的网站 和数据处理的类库,我用的是ef, 大家可以用自己的熟悉的框架 然后需要用打开nuget管理器 添加Savorboard.NPOI.Core.Ooxml 包

lyj123net的专栏 2898

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

vue项目-使用XLSX导入导出Excal

1.下载xlsx时报错,方法:降低xlsx的版本。思路:先创建一个方法,以便于在多个地方调用。

m0_65073765的博客 691

mysql+php导入导出excal

---------excel_class.php--------- &lt;?define('ABC_CRITICAL',      0);define('ABC_ERROR',         1);define('ABC_ALERT',         2);define('ABC_WARNING',       3);define('ABC_NOTICE',        4);defin...

草宝虫的博客 199

php 导入excal,php导入excel php使用phpexcel导入excel文件

//载入PHPExcel类include(dirname(__FILE__).'/phpexcel/PHPExcel.php');$Obj = new PHPExcel_Reader_Excel5();$Obj->setReadDataOnly(true);//读取demo.xls文件$phpExcel = $Obj->load(dirname(__FILE__).'/output.x...

weixin_35712811的博客 165

自定义注解 + util 实现excal 导入 导出

 自定义注解  (元注解 参考资料:http://blog.youkuaiyun.com/melody_susan/article/details/48050015)package com.zhuo.console.common.annotationClass; import java.lang.annotation.Retention; import java.lang.annotation.Retent...

M_Jack的博客 356

使用python将Excal表格数据批量导入PostgreSQL数据库

使用Python中的psycopg2库来操作PostgreSQL数据库是一个常见的任务。以下是一个完整的示例,包括安装必要的包、建立和关闭连接、执行增删改查操作以及处理可能的异常。

Lliangmao的博客 924

matlab复现论文中的曲线图(坐标存入excal,然后导入matlab画图)

matlab复现论文中的曲线图(坐标存入excal,然后导入matlab画图)

weixin_48234352的博客 3966

vue 导入excel解析_spring boot +vue 导入(解析) excal之easyExcel 2.x

packagecom.hsing.wooxabbs.common.utils;importcom.hsing.wooxabbs.entity.Role;importcom.hsing.wooxabbs.entity.User;importcom.hsing.wooxabbs.entity.authmodel.UserExcel;importcom.hsing.wooxabbs.service.Au...

weixin_39906521的博客 268

热词分析学习进度(二)

  今天主要进行对Word文档的处理。参考博客(https://blog.youkuaiyun.com/coding01/article/details/81512430)   一般来说将数据导入数据库中时使用的一般是txt文件或者是excal文件。将Word文档导入数据库中时一般的策略是将Word文档中的内容经过一定的替换修改转化为统一的格式进行修改。今天主要是进行将Word文档中的格式转化为统一的格式。...

weixin_30697239的博客 97
上一篇: 三层目录建树
下一篇: 企业微信会话存档功能
Adda_Chen
博客等级 码龄7年 1214粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值