Excel文件校验上传文件

本文介绍了如何进行Excel文件上传的校验,主要通过比对上传文件的标题与预设模板的标题一致性来判断,同时提供了关键代码和工具类,确保上传的文件是有效的Excel格式。
摘要由CSDN通过智能技术生成

最近用Excel文件上传,但是校验的比较少,有的校验就不对,我就自己写了一个校验,思路很简单,就是上传Excel 文件的标题和模板的标题是否一致,不一致就判断上传的不对,废话不说,直接上代码:

/**
 * 自定义导出Excel数据注解
 * 
 * 
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Excel
{
   
    /**
     * 导出到Excel中的名字.
     */
    public String name() default "";

    /**
     * 日期格式, 如: yyyy-MM-dd
     */
    public String dateFormat() default "";

    /**
     * 读取内容转表达式 (如: 0=男,1=女,2=未知)
     */
    public String readConverterExp() default "";

    /**
     * 导出类型(0数字 1字符串)
     */
    public ColumnType cellType() default ColumnType.STRING;

    /**
     * 导出时在excel中每个列的高度 单位为字符
     */
    public double height() default 14;

    /**
     * 导出时在excel中每个列的宽 单位为字符
     */
    public double width() default 16;

    /**
     * 文字后缀,如% 90 变成90%
     */
    public String suffix() default "";

    /**
     * 当值为空时,字段的默认值
     */
    public String defaultValue() default "";

    /**
     * 提示信息
     */
    public String prompt() default "";

    /**
     * 设置只能选择不能输入的列内容.
     */
    public String[
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在el-upload组件中,可以通过before-upload属性来进行文件上传前的校验。您可以在该属性的回调函数中进行相应的逻辑处理。根据您的需求,您可以在before-upload回调函数中实现以下步骤: 1. 获取上传文件。 2. 对文件内容进行校验,判断是否存在重复的数据。 3. 如果存在重复的数据,弹窗提示是否覆盖。您可以使用element-ui的MessageBox组件来实现弹窗提示,并在确认后继续上传文件。 4. 如果不存在重复的数据,或者用户取消了覆盖操作,可以通过return false来取消文件上传。 下面是一个示例代码,演示了如何在el-upload中实现文件内容的校验: ```javascript <el-upload class="upload-demo" action="your-upload-url" :before-upload="handleBeforeUpload" > <el-button type="primary">点击上传</el-button> </el-upload> methods: { handleBeforeUpload(file) { // 根据文件类型进行校验,例如只校验xls和xlsx文件 if (file.type !== 'application/vnd.ms-excel' && file.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { this.$message.error('只能上传Excel文件'); return false; // 取消文件上传 } // 进行文件内容校验,判断是否存在重复的数据 const isDuplicate = this.checkDuplicateData(file); if (isDuplicate) { // 弹窗提示是否覆盖 this.$confirm('文件中存在重复的数据,是否覆盖?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { // 用户确认覆盖,继续上传文件 this.uploadFile(file); }).catch(() => { // 用户取消覆盖,取消文件上传 return false; }); } else { // 不存在重复的数据,直接上传文件 this.uploadFile(file); } }, checkDuplicateData(file) { // 实现文件内容的校验逻辑,判断是否存在重复的数据 // ... }, uploadFile(file) { // 调用接口上传文件 // ... } } ``` 在上述示例中,handleBeforeUpload方法用于处理文件上传前的逻辑。其中,checkDuplicateData方法用于校验文件内容是否存在重复的数据,uploadFile方法用于调用接口上传文件。根据您的需求,在checkDuplicateData方法中实现文件内容的校验逻辑即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值