精华内容
下载资源
问答
  • excel表
    千次阅读
    2022-02-24 09:37:26

    👏👏👏

    哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

    ⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

    ⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

    ⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

    ❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

    一、leetcode算法

    1、Excel表列名称

    1.1、题目

    给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

    例如:

    A -> 1
    B -> 2
    C -> 3

    Z -> 26
    AA -> 27
    AB -> 28

    示例 1:

    输入:columnNumber = 1
    输出:“A”
    示例 2:

    输入:columnNumber = 28
    输出:“AB”
    示例 3:

    输入:columnNumber = 701
    输出:“ZY”
    示例 4:

    输入:columnNumber = 2147483647
    输出:“FXSHRXW”

    1.2、思路

    思路一:此题我们首先要知道Excel列表的命名规则,从1-26对应A-Z,超过26往前进一位,例如26是Z,27是AA,28是AB,通过此规律我们设计一下具体代码。

    1.3、答案

    在这里插入图片描述

    class Solution {
        public String convertToTitle(int columnNumber) {
            StringBuffer sb = new StringBuffer();
            while(columnNumber != 0){
                columnNumber--;
                sb.append((char)(columnNumber % 26 + 'A'));
                columnNumber /= 26;
            }
            return sb.reverse().toString();
        }
    }
    
    更多相关内容
  • ② 把excel表快速插入access数据库(整个表插入,而不是一行一行插入,速度超快); ③ Datatable 快速导出 规范的 excel表; ④ 纯代码生成一个不规则的 excel表(合并列、字体加颜色等); ⑤ 复制模版,嵌入数据...
  • 自己做的Excel表,2003,2007版下测试通过。 我某次参加网球比赛策划活动,负责人让我安排赛程。由于人数众多,于是我想做一个根据参赛人数自动生成赛程的Excel表。理论上,对任何有循环和淘汰制的体育比赛(如足球...
  • 多个Excel表合并成一个Excel表

    万次阅读 多人点赞 2019-06-30 17:38:04
    问题描述: 往往在进行数据统计分析前,会遇到数据分在不同的表里的情况,这时候就需要将多个的数据先放到一个的数据里面,然后再进行分析。比如班级需要汇总每个人的信息,几十人每个人都发了个人的信息,一...

    一 使用说明

    问题描述: 往往在进行数据统计分析前,会遇到数据分在不同的表里的情况,这时候就需要将多个表的数据先放到一个表里面汇总,然后再进行分析。比如班级需要汇总每个人的信息,几十人每个人都发了个人的信息表给一个人进行统计,统计人员可以进行一个一个表打开粘贴到汇总表里,但是这样不仅麻烦,而且还可能出错,这种做法最简单粗暴但却很浪费时间的。当然,如果是大批量的数据使用python或者其他语言汇总到一个表里也是可行的,如果是小批量的几百个数据,敲代码有点大材小用,这时候excel本身就可以解决。
    使用条件:对多个同类型的excel数据表通过excel功能合并到一个excel表内。同类型是指每个一个excel表的表头都是一样的,里面的信息都是同类型的,比如表1、表2的内容分别是如下两张表的内容,可以看出两者的录入信息都是一样的。本excel是2016版的,其他版本应该都有该功能,但是具体的菜单栏内容可能会有小差异。
    表1
    表1
    表2
    表2

    二 使用方法

    1.数据处理:将要合并的数据统一放到一个文件夹内

    ps:本文的示例数据是从招生信息网站找的,内容和上文表1表2的格式相同,分别在四个excel表内,统一命名为表1,表2,表3,表4,并放在一个文件夹内,如下图所示。

    示例数据

    示例数据
    2.在文件夹内新建一个汇总表,也可以命名其他的名字,用来汇总各个表格的信息

    ps:本文的示例汇总表命名为汇总表,如下图所示

    新建汇总表
    汇总表
    3.打开汇总表表格,然后右击下方的sheet1按钮,会出现一个菜单,点击“查看代码”一栏,这时会出现VBA窗口
    点击查看代码一栏
    在这里插入图片描述
    VBA窗口
    在这里插入图片描述
    4.在弹出的代码框中粘贴如下代码,并点击按钮运行,运行完后会弹出运行结果对话框,点击确定即可

    Sub all_contents()
    
    Dim MyPath, MyName, AWbName
    
    Dim Wb As Workbook, WbN As String
    
    Dim G As Long
    
    Dim Num As Long
    
    Dim BOX As String
    
    Application.ScreenUpdating = False
    
    MyPath = ActiveWorkbook.Path
    
    MyName = Dir(MyPath & "\" & "*.xls")
    
    AWbName = ActiveWorkbook.Name
    
    Num = 0
    
    Do While MyName <> ""
    
    If MyName <> AWbName Then
    
    Set Wb = Workbooks.Open(MyPath & "\" & MyName)
    
    Num = Num + 1
    
    With Workbooks(1).ActiveSheet
    
    .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
    
    For G = 1 To Sheets.Count
    
    Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
    
    Next
    
    WbN = WbN & Chr(13) & Wb.Name
    
    Wb.Close False
    
    End With
    
    End If
    
    MyName = Dir
    
    Loop
    
    Range("B1").Select
    
    Application.ScreenUpdating = True
    
    MsgBox "共合并了" & Num & "个工作薄" 
    
    End Sub
    
    

    运行代码
    在这里插入图片描述
    运行结果对话框
    在这里插入图片描述
    5.返回原来的工作簿,可以看到数据汇总成果。但是却出现很多重复的表头,除了第一个表头,我们需要将其他多余的表头删除,当然,如果不怕麻烦,也可以选择一行一行的删除。如果想一次性处理,这时需要进行如下几步:
    (1)将表数据进行全选,点击“查找和选择”按钮,在查找文本框内输入要查找的内容,内容可以是表头中的任意一个列名进行输入,然后点击”查找全部“按钮(本文使用了“院校名称”进行查找,也可以使用“年份”或者“考生类别”或其他列名)

    查找对应的列
    在这里插入图片描述
    (2)查找的结果都会在查找框的下面全部列出来,对结果使用Ctrl+A全选,这时所有的内容都变蓝了。然后按住Ctrl键不放,点击第一个查询结果,这时第一行变白了,也就是没有选中。看一下表内的数据内容,可以看到,除了第一行的院校名称没有变色,其他行的院校名称都变成了灰色,或者说处于一种被同时选中的状态。
    选中的行
    在这里插入图片描述
    (3)选择任意一个灰色被选中的单元格,然后右击该单元格,会有菜单弹出,点击删除一栏,在弹出的窗口中按照“整行”的方式删除,然后点击确定即可。这时所有选中的内容对应的行全部删除,这时表头问题就算解决了,数据汇总完成。
    选中删除
    在这里插入图片描述
    按照行删除
    在这里插入图片描述
    删除后的结果表
    在这里插入图片描述

    三 另外一种合并方法

    这种方法得出来的数据有点像数据透视表的结果,而且需要一个个导入,也推荐使用,,具体好坏,还请自行鉴别使用

    1.源数据:不一定放在一个文件夹,一般考虑方便,放在一个文件夹里了,这里还使用原来的数据,可以新建一个汇总表。
    2.打开汇总表,首先点击选中A1单元格,然后在“数据“一栏中,选择“现有连接”功能,会弹出的窗口,在窗口左下角点击“浏览更多”
    现有连接窗口
    在这里插入图片描述
    3.这时需要选择数据源,对话框主要会按照如下步骤弹出:
    (1)数据源对话框:点击浏览更多后会弹出选择数据源对话框,在对话框左边找到源数据文件所在的路径,然后从路径里选择表1,点击右下角的打开按钮。

    数据源对话框
    在这里插入图片描述
    (2)选择表格对话框:点击打开后会出现选择表格对话框,在该对话框内的sheet1就是表1的表,如果表1工作簿内有两个sheet表,选择对应的sheet表就行,这里表1工作簿就一个sheet表,所以直接点击确定即可。
    选择表格对话框
    在这里插入图片描述
    (3)导入数据对话框:点击确定后出现导入数据对话框,显示方式选“表”就行,不用动,“现有工作表”一栏下面需要填写单元格,这里“$ A $ 1 是选择A1单元格开始粘贴,如果不从A1开始粘贴,可以自行选择其他起始单元格。选好单元格后,点击确定即可。这时表1的数据就录入成功了,如下图所示。

    导入数据对话框
    在这里插入图片描述
    录入的表1数据
    录入的表1数据
    4.如果需要导入其他表,重复1,2,3步即可,录入的四个表的结果如下图所示
    录入四个表的结果
    在这里插入图片描述
    5.这里发现仍然会出现很多重复的表头,按照第一种删除方法是无效的,处理方法为:首先将内容全选;然后将内容复制;新建一个sheet表,然后以文本的方式粘贴到另外一张sheet表里;最后按照上文第一种方法里删除重复表头的方式将重复表头删除,即为所获得的汇总表。

    展开全文
  • python对比两个excel表 【超简单】

    千次阅读 多人点赞 2021-06-02 18:44:27
    就是将excel表中每条数据变成一个字典,然后添加到列表中,组成一个元素为字典类型的列表(由于数据不可公开,所以做了马赛克)。如下: excel数据:表1 ​ excel数据:表2 可以看到每个excel表数据很多,都几千条...

    注:由于我们不是专门做数据处理与分析的,因此懂的也少,所以编写的python程序是简单易懂的,如果存在bug或者可以有更好的方法,欢迎大佬指出!!!

    主要思路:
    就是将excel表中每条数据变成一个字典,然后添加到列表中,组成一个元素为字典类型的列表(由于数据不可公开,所以做了马赛克)。如下:
    excel数据:表1
    在这里插入图片描述
    excel数据:表2
    在这里插入图片描述
    可以看到每个excel表数据很多,都几千条,如果一个个看很费时。

    import openpyxl
    # 加载第一个Excel
    data_raw= openpyxl.load_workbook("微课与教学辅助清单核对.xlsx") # 加载Excel文件
    data_raw_sheet1 = data_raw[data_raw.sheetnames[0]] # 获取第一张数据表
    data_weike= openpyxl.load_workbook("微课与教学辅助作品审核表.xlsx") # 加载Excel文件
    data_weike_sheet1 = data_weike[data_weike.sheetnames[0]]
    # data_raw_dict = {}
    # data_weike_dict = {}
    data_raw_list = []
    data_weike_list = []
    #微课类作品
    for row in range(2,data_weike_sheet1.max_row):
        data_weike_dict = {}
        bianhao = data_weike_sheet1.cell(row=row,column=1).value
        dalei_name = data_weike_sheet1.cell(row=row,column=2).value
        xiao_name= data_weike_sheet1.cell(row=row,column=3).value
        zuo_name = data_weike_sheet1.cell(row=row,column=4).value
        xue_name = data_weike_sheet1.cell(row=row,column=5).value
        shengfen = data_weike_sheet1.cell(row=row,column=6).value
        data_weike_dict['省份'] = shengfen
        data_weike_dict['作品编号'] = bianhao
        data_weike_dict['大类名称'] = dalei_name
        data_weike_dict['小类名称'] = xiao_name
        data_weike_dict['作品名称'] = zuo_name
        data_weike_dict['参赛学校'] = xue_name
        data_weike_list.append(data_weike_dict)
    #全部数据
    for row in range(2,data_raw_sheet1.max_row):
        if data_raw_sheet1.cell(row=row,column=3).value == '微课与教学辅助':
            data_raw_dict = {}
            shengfen = data_raw_sheet1.cell(row=row,column=1).value
            bianhao = data_raw_sheet1.cell(row=row,column=2).value
            dalei_name= data_raw_sheet1.cell(row=row,column=3).value
            xiao_name = data_raw_sheet1.cell(row=row,column=4).value
            zuo_name = data_raw_sheet1.cell(row=row,column=5).value
            xue_name = data_raw_sheet1.cell(row=row,column=6).value
            data_raw_dict['省份'] = shengfen
            data_raw_dict['作品编号'] = bianhao
            data_raw_dict['大类名称'] = dalei_name
            data_raw_dict['小类名称'] = xiao_name
            data_raw_dict['作品名称'] = zuo_name
            data_raw_dict['参赛学校'] = xue_name
            data_raw_list.append(data_raw_dict)
    #数据对比,把不正确的编号记录下来
    print(len(data_weike_list))
    print(len(data_raw_list))
    right=0
    wrong_count = 0
    wrong_list = []
    same = [x for x in data_weike_list if x in data_raw_list] #找两表相同的内容
    no_same_in_weike = [x for x in data_weike_list if x not in same] #在weike中找和raw不同的数据
    no_same_in_qingdan = [x for x in data_raw_list if x not in same]#在raw中和weike不同的数据
    print(len(same))
    print(len(no_same_in_qingdan))
    print(len(no_same_in_weike))
    #微课中不同的
    for i in no_same_in_weike:
        print(i)
    #清单中不同的
    print("微课中出现与清单中不同的作品对比:")
    for i in no_same_in_qingdan:
        print(i)
    

    处理之后找出两表中不同的信息:

    在这里插入图片描述

    展开全文
  • 第一步,我们要将本地Excel表上传到服务器(此次我就将我的本地电脑当做了服务器),并返回服务中Excel表的名称,拼接服务器中Excel表的绝对路径。 upload是方法拼接的 //上传文件路径 F:\\Program Files\\java...

    一些用户要求Excel导入学生信息或试题信息这就用到了Excel导入功能,下面我们具体讲讲Excel如何导入

    首先我用的是框架

    niua: 基于Springboot的后台管理系统 - Gitee.com

    此框架还有自动生成增删改查和前端vue页面

    将Excel表中数据导入数据库

    第一步,我们要将本地Excel表上传到服务器(此次我就将我的本地电脑当做了服务器),并返回服务中Excel表的名称,拼接服务器中Excel表的绝对路径。

    NiuaConfig.getUploadPath()方法--通过注解获取yml中定义的服务器文件上传路径

     FileUploadUtils.upload方法

     extractFilename(file)方法--传入二进制文件

     在文件存储路径创建文件夹以便于管理、例如

    File desc = getAbsoluteFile(baseDir, fileName)将文件路径完整拼接没有那层他都会自己创建

     file.transferTo(desc)将二进制文件写入指定文件夹

    到这文件上传就完成了。返回文件路径,就可以引用了。

    upload是方法拼接的 

    //上传文件路径 F:\\Program Files\\java\\chaozexu\\bdks\\demo\\upload\\
    String filePath = NiuaConfig.getUploadPath();
    //上传文件并返回新文件名称
    String fileName = FileUploadUtils.upload(filePath, file);
    //拼接文件上传到服务器的绝对路径
    fileName = filePath + File.separator + fileName;

    第二步,解析我们Excel表中数据,并将Excel中的数据和java的属性进行匹配或赋值

    Excel表数据

     Excel表头数据要和实体类中Excel注解中name对应

    public class Exam {
    
            @TableId(type = IdType.AUTO)
            @Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC)
            private Long id;
    
            @Excel(name = "考试名称")
            private String name;
    
            @Excel(name = "考试时间")
            private LocalDateTime examTime;
    
            @Excel(name = "考试描述")
            private String description;
    
            @ApiModelProperty(value = "更新时间")
            @TableField(fill = FieldFill.INSERT_UPDATE)
            @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
            private LocalDateTime updateTime;
    
            @ApiModelProperty(value = "创建时间")
            @TableField(fill = FieldFill.INSERT)
            @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
            private LocalDateTime createTime;
    
            @TableField(exist=false)
            @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
            private LocalDateTime createTimeBegin;
            @TableField(exist=false)
            @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
            private LocalDateTime createTimeEnd;
    
    
            @Excel(name = "删除标识0正常")
            private Integer deleteFlag;
    
    
    
    
    
    }
    package tech.niua.admin.util;
    
    import org.springframework.web.multipart.MultipartFile;
    import tech.niua.common.annotation.Excel;
    import tech.niua.common.config.NiuaConfig;
    import tech.niua.common.utils.file.FileUploadUtils;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.lang.reflect.Field;
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 解析我们Excel表中数据,并将Excel中的数据和java的属性进行匹配或赋值
     */
    public class ExcelImport {
        //返回List<Object>类型的数据
        /**
         * 
         * @param file  二进制文件
         * @param object  实体类
         * @return
         * @throws Exception
         */
        public static List<Object> importExcel(MultipartFile file, Class cls) throws Exception {
            //上传文件路径 F:\\Program Files\\java\\chaozexu\\bdks\\demo\\upload\\
            String filePath = NiuaConfig.getUploadPath();
            //上传文件并返回新文件名称
            String fileName = FileUploadUtils.upload(filePath, file);
            //拼接文件上传到服务器的绝对路径
            fileName = filePath + File.separator + fileName;
            //把上传的文件转换成输入流
            FileInputStream fileInputStream = new FileInputStream(new File(fileName));
            //输入流 和 文件路径  作为参数传入 获取List<List<Object>>类型数据的方法中
            List<List<Object>> list = ExcelUtils.getListByExcel(fileInputStream, fileName);
            //将数据转换成List<Object>类型的数据
            List<Object> firstRows = null;
            //将第一行拿出
            if (list != null && list.size() > 0) {
                firstRows = list.get(0);
            }
            //创建excelDate集合,将需要插入数据库的数据放到excelDate中
            List<Object> excelDate = new ArrayList<>();
            //遍历每行数据
            for (int i = 1; i < list.size(); i++) {
                List<Object> rows = list.get(i);
                //通过反射实例化处理的类
                Object obj = cls.newInstance();
                //对每行的每列进行遍历
                for (int j = 0; j < rows.size(); j++) {
                    String cellVal = (String) rows.get(j);
                    //调用方法给实体类属性赋值
                    ExcelImport.setFieldValueByFieldName(obj, firstRows.get(j).toString().trim(), cellVal);
                }
                excelDate.add(obj);
            }
            return excelDate;
        }
    
    
        /**
         * 通过反射判断注解和属性名并给实体类赋值
         * 将获取的数据的数据类型,转化为实体类属性类型
         * @param object
         * @param fieldName
         * @param val
         */
        public static void setFieldValueByFieldName(Object object, String fieldName, Object val) {
            try {
                //通过反射获取类中属性
                Field[] fields = object.getClass().getDeclaredFields();
                for (int i = 0; i < fields.length; i++) {
                    Field field = fields[i];
                    //反射对属性进行赋值
                    //强制类型转换
                    field.setAccessible(true);
                    //拿到当前实体类字段的Excel注解
                    Excel excel = field.getAnnotation(Excel.class);
                    if(excel == null){
                        continue;
                    }
                    if(fieldName.equals(excel.name())||fieldName.equals(field.getName())){
                        //把属性值set进对象
                        //将String类型强转换为其实体类相对应的类型
                        if(field.getType()==Integer.class){
                            field.set(object,Integer.valueOf(val.toString()));
                        } else if(field.getType()==Long.class){
                            field.set(object,Long.valueOf(val.toString()));
                        }else if(field.getType()== LocalDateTime.class){
                            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                            LocalDateTime LocalTime = LocalDateTime.parse( val.toString(),df);
                            field.set(object,LocalTime);
                        }else
                            field.set(object, val);
                        return;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
    }
    

    Excel工具类(将Excel表中数据转成List<List<Object>>形式)

    package tech.niua.admin.util;
    
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.math.BigDecimal;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    /**
     * Created by Guanzhong Hu
     * Date :2020/2/12
     * Description : excel导入工具类
     * Version :1.0
     */
    public class ExcelUtils {
    
        private final static String excel2003L =".xls";    //2003- 版本的excel
        private final static String excel2007U =".xlsx";   //2007+ 版本的excel
    
        /**
         * @Description:获取IO流中的数据,组装成List<List<Object>>对象
         * @param in,fileName
         * @return
         * @throws IOException
         */
        public static List<List<Object>> getListByExcel(InputStream in, String fileName) throws Exception{
            List<List<Object>> list = null;
    
            //创建Excel工作薄
            Workbook work = getWorkbook(in,fileName);
            if(null == work){
                throw new Exception("创建Excel工作薄为空!");
            }
            Sheet sheet = null;  //页数
            Row row = null;  //行数
            Cell cell = null;  //列数
    
            list = new ArrayList<List<Object>>();
            //遍历Excel中所有的sheet
            for (int i = 0; i < work.getNumberOfSheets(); i++) {
                sheet = work.getSheetAt(i);
                if(sheet==null){continue;}
    
                //遍历当前sheet中的所有行
                for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {
                    row = sheet.getRow(j);
                    if(row==null){continue;}
    
                    //遍历所有的列
                    List<Object> li = new ArrayList<Object>();
                    for (int y = row.getFirstCellNum(); y < row.getLastCellNum(); y++) {
                        cell = row.getCell(y);
                        li.add(getValue(cell));
                    }
                    list.add(li);
                }
            }
    
            return list;
    
        }
    
        /**
         * @Description:根据文件后缀,自适应上传文件的版本
         * @param inStr,fileName
         * @return
         * @throws Exception
         */
        public static  Workbook getWorkbook(InputStream inStr,String fileName) throws Exception{
            Workbook wb = null;
            String fileType = fileName.substring(fileName.lastIndexOf("."));
            if(excel2003L.equals(fileType)){
                wb = new HSSFWorkbook(inStr);  //2003-
            }else if(excel2007U.equals(fileType)){
                wb = new XSSFWorkbook(inStr);  //2007+
            }else{
                throw new Exception("解析的文件格式有误!");
            }
            return wb;
        }
    
        /**
         * @Description:对表格中数值进行格式化
         * @param cell
         * @return
         */
        //解决excel类型问题,获得数值
        public static String getValue(Cell cell) {
            String value = "";
            if(null==cell){
                return value;
            }
            switch (cell.getCellType()) {
                //数值型
                case NUMERIC:
                    if (DateUtil.isCellDateFormatted(cell)) {
                        //如果是date类型则 ,获取该cell的date值
                        Date date = DateUtil.getJavaDate(cell.getNumericCellValue());
                        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        value = format.format(date);;
                    }else {// 纯数字
                        BigDecimal big=new BigDecimal(cell.getNumericCellValue());
                        value = big.toString();
                        //解决1234.0  去掉后面的.0
                        if(null!=value&&!"".equals(value.trim())){
                            String[] item = value.split("[.]");
                            if(1<item.length&&"0".equals(item[1])){
                                value=item[0];
                            }
                        }
                    }
                    break;
                //字符串类型
                case STRING:
                    value = cell.getStringCellValue();
                    break;
                // 公式类型
                case FORMULA:
                    //读公式计算值
                    value = String.valueOf(cell.getNumericCellValue());
                    if (value.equals("NaN")) {// 如果获取的数据值为非法值,则转换为获取字符串
                        value = cell.getStringCellValue();
                    }
                    break;
                // 布尔类型
                case BOOLEAN:
                    value = " "+ cell.getBooleanCellValue();
                    break;
                default:
                    value = cell.getStringCellValue();
            }
            if("null".endsWith(value.trim())){
                value="";
            }
            return value;
        }
    
    
    }
    

    第三步,批量插入到我们的数据库

        /**
         * 数据导入
         * @return
         */
        @PreAuthorize("hasAuthority('/exam/dataImport')")
        @PostMapping("/dataImport")
        public ResultJson uploadFile(MultipartFile file) throws Exception {
            List<Object> objects = ExcelImport.importExcel(file,Exam.class);
            List<Exam> list = (List)objects;
            boolean flag = examService.saveOrUpdateBatch(list);
            if(flag){
                return ResultJson.ok();
            }
            return ResultJson.failure(ResultCode.NOT_UPDATE);
        }

    vue上传功能 

    <template>
        <div class="component-upload-image">
            <el-upload
                    drag
                    :action="uploadImgUrl"
                    :on-success="handleUploadSuccess"
                    :before-upload="handleBeforeUpload"
                    :on-error="handleUploadError"
                    name="file"
                    :show-file-list="false"
                    :headers="headers"
            >
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
            </el-upload>
            <el-row>
                <span>
                    {{uploadUrlPath}}
                </span>
    
            </el-row>
        </div>
    </template>
    
    <script>
        import { getToken } from '@/utils/auth';
    
        export default {
            components: {},
            data() {
                return {
                    uploadImgUrl:  "/v1/exam/dataImport", // 上传的图片服务器地址
                    headers: {
                        Authorization: "Bearer " + getToken(),
                    },
                    uploadUrlPath: "没有文件上传",
                };
            },
            props: {
                value: {
                    type: String,
                    default: "",
                },
            },
            methods: {
                handleUploadSuccess(res) {
                    this.uploadUrlPath = JSON.stringify(res);
                    this.loading.close();
                },
                handleBeforeUpload() {
                    this.loading = this.$loading({
                        lock: true,
                        text: "上传中",
                        background: "rgba(0, 0, 0, 0.7)",
                    });
                },
                handleUploadError() {
                    this.$message({
                        type: "error",
                        message: "上传失败",
                    });
                    this.loading.close();
                },
            },
            watch: {},
        };
    </script>
    
    <style scoped lang="scss">
        .avatar {
            width: 100%;
            height: 100%;
        }
    </style>

     结果展示

    展开全文
  • Python如何读取Excel表内容

    万次阅读 2022-02-18 11:14:52
    用python读取excel表中的数据 假如说有如下一张存储了数据的excel表,其中x1-x6是特征,y_label是特征对应的类别标签。我们想要使用python对以下数据进行数据分析,那么第一步就要先把excel表中的数据读取出来才行。...
  • 本篇将通过简单的实例对Excel的读写进行讲解,对比已有的同类文章所出现的内容过于复杂的问题,本文进行了优化,力求以简单的操作为切入点,介绍清楚python读写Excel的基本操作方法。 II. 安装相关库 首先,我们...
  • 我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。如图所示: 接下来我们打开新建excel表格,按快捷键Alt+F11进入图示界面,或右键单击sheet1,找到“查看代码”。 然后我们双击箭头...
  • python如何读取excel表数据

    千次阅读 2020-11-30 21:04:27
    python读取excel表数据的方法:首先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列的内容,并将内容存储在列表中;最后运行程序即可。python读取excel表数据的方法:1、...
  • 相信很多友友们都遇到一个同样的问题,就是将多个excel表汇总成一个表效率极低,不止如此,还要看有没有复制错。担任多种职务的我总是要汇总很多个表格,早就想解决这个问题,经过查资料学习网上的大咖,我成功的...
  • 使用pandas中DataFrame格式数据导出excel的时候遇到了一个麻烦,数据自动生成了表头和行号,很多余,如下图: 下面是通过参数控制避免这种情况的代码,就两个参数: df2.to_excel(path,header=None,index=False) ...
  • C#操作Excel表

    万次阅读 多人点赞 2018-04-11 10:25:33
    本文主要介绍一下c#来操作excel表格,主要介绍我使用的,我是使用第三方提供的函数库(NPOI)来进行excel的操作,而NPOI库函数在其官网下,我这里就不拿出来了。1:NPOI库函数NPOI库函数下载后,解压出来有一下几个...
  • 如何用excel做正交实验回归分析应用方式如下:正交试验的极差分析法又称直观分析法, 极差分析法又称直观分析法,它具有计 算简单、直观形象、简单易懂等优点, 算简单、直观形象、简单易懂等优点,是正交试验结果...
  • 批量给excel表中的每行添加表头

    千次阅读 2020-11-26 17:00:44
    1.打开需要批量给每行记录添加表头的excel表 2.填充序号 3.将序号复制、粘贴一份用于添加空白行 4. 选中序号列(此处是列F),点击“数据”——找到“排序” ——点击排序 5.进入“排序”...
  • Excel表中只能选择固定内容

    千次阅读 2021-12-17 13:12:18
    一、实现效果 二、实现方法 2.1、设置Excel表中只能选择指定内容
  • python遍历excel表

    千次阅读 2019-11-18 14:57:30
    from openpyxl import load_workbook def printXLSXInfo(self, xlsxFile): wb = load_workbook(filename=xlsxFile) errCounter = 0 for x in wb: sheet_ranges = wb[x.title] for val in ...
  • c#读取Excel表数据

    千次阅读 2020-11-06 13:23:33
    1,使用OLEDB可以对excel文件进行读取 private DataSet ReadExcelToDataSet(string path) { //连接字符串 /* 备注: 添加 IMEX=1 表示将所有列当做字符串读取,实际应该不是这样, 系统默认会查看前8行如果有...
  • Oracle如何将表导出为Excel表

    千次阅读 2021-07-16 14:34:34
    oracle将数据导出成excel文件的方法 1)在SQL窗体上,查询要导出的数据 --查询数据条件-- select MID,CODE,NAME from Dxc_Goods_Cate where GOODSTYPE=1; 结果视图 2)在查询结果的空白处,右键选择Copy ...
  • 对于不熟悉Excel公式,不熟悉vba的人,要如何按需要快速把多个excel表合并成一个excel表? 下面介绍两款在线工具,一键解决excel表合并的问题,不在需要使用Excel公式或者vba。 工具地址:http://www.excelfb.com/...
  • #括号中的字符串为你要比较的两个excel的路径,注意用“/” wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx') wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/...
  • 快速将多个excel表合并成一个excel表---内附代码

    万次阅读 热门讨论 2019-05-05 17:03:33
    有很多张excel,而且excel表里面的结构基本一样,如何快速将这些excel合并在一个excel页面,便于后期分析和统计。 具体如下: 1、我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel...
  • 在使用excel数据时,有时需要将一张中的数据匹配到另一张中进行统计,一般来说中的数据项不完全相同且中的数据较多。这时就需要用到VLOOKUP函数进行查找。 函数介绍: VLOOKUP函数一共有四个参数,分别...
  • #NAME?:EXCEL表中出现#NAME是什么意思?

    千次阅读 2021-02-27 07:48:04
    EXCEL表中出现#NAME是什么意思?这是因为公式中A、B和C+是文本,1、如图输入题主的公式。会弹出所键入的公式含有错误,会显示C这里有错,不止C这里有错,前面的A和B也有错,3、因为公式EXCEL表中出现#NAME是什么意思...
  • 我们需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。如图所示: 用microsoft excel打开新建的excel表,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。...
  • VB操作EXCEL表的常用方法

    万次阅读 多人点赞 2019-01-07 17:39:12
    VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的...一、 VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下: ...
  • 一,遍历目标文件夹并筛选出’.xls’或’.xlsx’格式的存入到数组中。 二,数组存储筛选出的指定数据。 三,excel数据存储的起始数据为指定sheet的数据条数+1。 import os import sys from openpyxl import ...
  • 1. 收到一张 excel ,要求根据 “转账时间”一列的值批量修改数据库中 "放款时间"一列的值。 2. 写出 sql 模板: UPDATE 数据库名.表名 set 放款时间=' 'WHERE 订单号=' '; 3. 把 sql 模板带入 excel 中,...
  • 1、将dict类型的数据追加写入到现有的Excel中 2、将list[dict]类型的数据追加写入到现有的Excel中 二、方法 见代码 三、代码 import pandas as pd from openpyxl import load_workbook # 将dict类型的数据...
  • python将列表里的数据导入excel表

    千次阅读 2021-06-02 15:23:39
    python将列表里的数据导入excel表 这里使用xlwt将列表里的数据导入python import xlwt workbook = xlwt.Workbook(encoding = 'utf-8') #设置一个workbook,其编码是utf-8 worksheet = workbook.add_sheet("test_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 327,388
精华内容 130,955
关键字:

excel表