精华内容
下载资源
问答
  • indesign导出pdf失败怎么办

    千次阅读 2020-12-24 05:40:17
    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。话题:indesign导出pdf失败怎么办?回答:我刚刚也是这个问题,一页一页导出,有的能导出,有一页不行,...indesign导出PDF,为什么打开PDF,会出现“当...

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。

    话题:indesign导出pdf失败怎么办?回答:我刚刚也是这个问题,一页一页导出,有的能导出,有一页不行,发现就是这一页有几个字符没法显示,就是显示粉色方框,删掉(或换字体)之后就能导了,看看你是不是这个原因,可能晚了一点

    参考回答:我安装了一个Acrobat就可以导出PDF了话题:indesign导出PDF,为什么打开PDF,会出现“当打开文档是发生错误回答:1\首先判断一下,在你电脑上其它的PDF能否正常打?2、然后有INDESIG导出一个比较简单的PDF,看看能否正话题:indesign 导出PDF后图片只显示部,是怎么回事?回答:先按“选择工具”按钮,然后点PDF的筐,然后再双击话题:indesign置入pdf时显示回答:你把pdf先拉到ai里打开试试,如果可以就存ai再过去。如果ai也打不开就说明是pdf本身有问题。

    参考回答:安装acrobat之后用它默认的adobe虚拟打印机,把word打印成pdf置入indesign就没问题了话题:indesign导出pdf怎么都是在同一页出现错误呢,导致导出失败。回答:肯定有对象的原因,你把参考线都清除干净再导出试试,因为可能参考线被编进组里了话题:indesign cs6 分部分导出pdf,其它部分导出,只有其中的两页总回答:1. 是直接提示导出失败2. 还是导出了,但这两页没有内容啊回答:1. 1)把页面内的东西选中的另一个,删除这两页,重。2)看看你的图片,是不是实际图

    展开全文
  • </font> </div> </form> </script> </html> 在实体变量上添加@Excel注解,默认为导出导入,也可以单独设置仅导入Type.IMPORT @Excel(name = "用户序号") private Long id; @Excel(name = "部门编号", type = Type....

    前端调用封装好的方法,传入后台

     //加载表格
        function queryReload(columnsVal) {
            //将原表格销毁,再重新init()初始化一次即可
            $("#bootstrap-table").bootstrapTable('destroy');
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                exportUrl: prefix + "/export",
                importUrl: prefix + "/importData",
                importTemplateUrl: prefix + "/importTemplate",
                modalName: "教师发展中心工作量汇总",
                tableName: "bas_fzzxgzl",
                columns: columnsVal,
                showSearch: false,
                showRefresh: false,
                showToggle: false,
                showColumns: false,
            };
            $.table.init(options);
        }
    

    添加导入按钮事件

      <a class="btn btn-info" onclick="$.table.importRecordExcel()" shiro:hasPermission="ndjs:fzzxgzl:import" >
                    <i class="fa fa-upload"></i> 导入
                </a>
    

    添加导入区域

    </body>
    <!-- 导入区域 -->
    <script id="importTpl" type="text/template">
        <form enctype="multipart/form-data" class="mt20 mb10">
            <div class="col-xs-offset-1">
                <input type="file" id="file" name="file"/>
                <div class="mt10 pt5">
                    <!--                <input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据-->
                    <!--                &nbsp; -->
                    <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
                            class="fa fa-file-excel-o"></i> 下载模板</a>
                </div>
                <font color="red" class="pull-left mt10">
                    提示:仅允许导入“xls”或“xlsx”格式文件!
                </font>
            </div>
        </form>
    </script>
    </html>
    

    在实体变量上添加@Excel注解,默认为导出导入,也可以单独设置仅导入Type.IMPORT

    @Excel(name = "用户序号")
    private Long id;
    
    @Excel(name = "部门编号", type = Type.IMPORT)
    private Long deptId;
    
    @Excel(name = "用户名称")
    private String userName;
    
    /** 导出部门多个对象 */
    @Excels({
    	@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
    	@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
    })
    private SysDept dept;
    
    /** 导出部门单个对象 */
    @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT)
    private SysDept dept;
    

    在Controller添加导入方法

     /**
         * 模板下载
         *
         * @param
         * @return com.ruoyi.common.core.domain.AjaxResult
         * @author 
         *
         */
        @RequiresPermissions("ndjs:fzzxgzl:view")
        @GetMapping("/importTemplate")
        @ResponseBody
        public AjaxResult importTemplate() {
            ExcelUtil<BasFzzxgzl> util = new ExcelUtil<BasFzzxgzl>(BasFzzxgzl.class);
            return util.importTemplateExcel("教师发展中心工作量数据");
        }
    
    
        /**
         * 导入
         *
         * @param file
         * @param updateSupport
         * @return com.ruoyi.common.core.domain.AjaxResult
         * @author 
         *
         */
        @Log(title = "社会实践工作量", businessType = BusinessType.IMPORT)
        @RequiresPermissions("ndjs:fzzxgzl:import")
        @PostMapping("/importData")
        @ResponseBody
        public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
            ExcelUtil<BasFzzxgzl> util = new ExcelUtil<BasFzzxgzl>(BasFzzxgzl.class);
            List<BasFzzxgzl> fzzxgzlList = util.importExcel(file.getInputStream());
            return basFzzxgzlService.importFzzxgzl(fzzxgzlList, updateSupport);
        }
    

    创建一个实体类用来记录导入时的错误数据

    public class BasImportRecord extends BaseEntity
    {
        private static final long serialVersionUID = 1L;
    
        /** id */
        private Long id;
    
        /** 导入记录表名称 */
        @Excel(name = "导入记录表名称")
        private String importTableName;
        /** 导入记录原内容行号*/
        private Long importLineNum;
        /** 导入批次序号yyyymmddhhmmssfff */
        @Excel(name = "导入批次序号yyyymmddhhmmssfff")
        private String importBatchNum;
    
        /** 导入的一行记录内容|分隔多列内容 */
        @Excel(name = "导入的一行记录内容|分隔多列内容")
        private String importContent;
    
        /** 导入状态 0成功 1失败 */
        @Excel(name = "导入状态 0成功 1失败")
        private String importState;
    
        /** 导入信息(失败原因) */
        @Excel(name = "导入信息(失败原因)")
        private String importInfo;
        }
    

    添加数据库语句

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.ruoyi.workload.mapper.BasImportRecordMapper">
    
        <resultMap type="BasImportRecord" id="BasImportRecordResult">
            <result property="id"    column="id"    />
            <result property="importTableName"    column="import_table_name"    />
            <result property="importBatchNum"    column="import_batch_num"    />
            <result property="importContent"    column="import_content"    />
            <result property="importState"    column="import_state"    />
            <result property="importInfo"    column="import_info"    />
            <result property="createBy"    column="create_by"    />
            <result property="createTime"    column="create_time"    />
            <result property="updateBy"    column="update_by"    />
            <result property="updateTime"    column="update_time"    />
            <result property="remark"    column="remark"    />
            <result property="importLineNum" column="import_line_num"/>
        </resultMap>
    
        <sql id="selectBasImportRecordVo">
            select id, import_table_name,import_line_num, import_batch_num, import_content, import_state, import_info, create_by, create_time, update_by, update_time from bas_import_record
        </sql>
    
        <select id="selectBasImportRecordList" parameterType="BasImportRecord" resultMap="BasImportRecordResult">
            <include refid="selectBasImportRecordVo"/>
            <where>
                <if test="importTableName != null  and importTableName != ''"> and import_table_name = #{importTableName}</if>
                <if test="importBatchNum != null  and importBatchNum != ''"> and import_batch_num = #{importBatchNum}</if>
                <if test="importContent != null  and importContent != ''"> and import_content = #{importContent}</if>
                <if test="importState != null  and importState != ''"> and import_state = #{importState}</if>
                <if test="importInfo != null  and importInfo != ''"> and import_info = #{importInfo}</if>
            </where>
        </select>
    
        <select id="selectBasImportRecordById" parameterType="Long" resultMap="BasImportRecordResult">
            <include refid="selectBasImportRecordVo"/>
            where id = #{id}
        </select>
    
        <insert id="insertBasImportRecord" parameterType="BasImportRecord">
            insert into bas_import_record
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="id != null ">id,</if>
                <if test="importTableName != null  and importTableName != ''">import_table_name,</if>
                <if test="importBatchNum != null  and importBatchNum != ''">import_batch_num,</if>
                <if test="importContent != null  and importContent != ''">import_content,</if>
                <if test="importState != null  and importState != ''">import_state,</if>
                <if test="importInfo != null  and importInfo != ''">import_info,</if>
                <if test="createBy != null  and createBy != ''">create_by,</if>
                <if test="createTime != null ">create_time,</if>
                <if test="updateBy != null  and updateBy != ''">update_by,</if>
                <if test="updateTime != null ">update_time,</if>
                <if test="remark != null  and remark != ''">remark,</if>
                <if test="importLineNum != null">import_line_num,</if>
             </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                <if test="id != null ">#{id},</if>
                <if test="importTableName != null  and importTableName != ''">#{importTableName},</if>
                <if test="importBatchNum != null  and importBatchNum != ''">#{importBatchNum},</if>
                <if test="importContent != null  and importContent != ''">#{importContent},</if>
                <if test="importState != null  and importState != ''">#{importState},</if>
                <if test="importInfo != null  and importInfo != ''">#{importInfo},</if>
                <if test="createBy != null  and createBy != ''">#{createBy},</if>
                <if test="createTime != null ">#{createTime},</if>
                <if test="updateBy != null  and updateBy != ''">#{updateBy},</if>
                <if test="updateTime != null ">#{updateTime},</if>
                <if test="remark != null  and remark != ''">#{remark},</if>
                <if test="importLineNum != null">#{importLineNum},</if>
             </trim>
        </insert>
    
        <update id="updateBasImportRecord" parameterType="BasImportRecord">
            update bas_import_record
            <trim prefix="SET" suffixOverrides=",">
                <if test="importTableName != null  and importTableName != ''">import_table_name = #{importTableName},</if>
                <if test="importBatchNum != null  and importBatchNum != ''">import_batch_num = #{importBatchNum},</if>
                <if test="importContent != null  and importContent != ''">import_content = #{importContent},</if>
                <if test="importState != null  and importState != ''">import_state = #{importState},</if>
                <if test="importInfo != null  and importInfo != ''">import_info = #{importInfo},</if>
                <if test="createBy != null  and createBy != ''">create_by = #{createBy},</if>
                <if test="createTime != null ">create_time = #{createTime},</if>
                <if test="updateBy != null  and updateBy != ''">update_by = #{updateBy},</if>
                <if test="updateTime != null ">update_time = #{updateTime},</if>
                <if test="remark != null  and remark != ''">remark = #{remark},</if>
                <if test="importLineNum != null">import_line_num = #{importLineNum},</if>
            </trim>
            where id = #{id}
        </update>
    
        <delete id="deleteBasImportRecordById" parameterType="Long">
            delete from bas_import_record where id = #{id}
        </delete>
    
        <delete id="deleteBasImportRecordByIds" parameterType="String">
            delete from bas_import_record where id in
            <foreach item="id" collection="array" open="(" separator="," close=")">
                #{id}
            </foreach>
        </delete>
        <select id="selectByTableNameCount" resultType="java.util.Map" parameterType="BasImportRecord">
        SELECT a.* FROM (
            SELECT
                date_format(max( r.create_time ), '%Y-%m-%d %H:%i:%s') AS createTime,
                count( * ) AS count,
                r.import_table_name as importTableName,
    	        r.import_batch_num as importBatchNum,
                count( IF ( r.import_state = 0, TRUE, NULL ) ) AS succeedCount,
                count( IF ( r.import_state = 1, TRUE, NULL ) ) AS failureCount
            FROM
                bas_import_record r
            WHERE
                r.create_time IS NOT NULL
                AND r.import_table_name = #{importTableName}
                AND r.create_by = #{createBy}
            GROUP BY
                r.import_batch_num) a ORDER BY a.createTime DESC
        </select>
        <select id="selectByTableNameAndBatchNum" parameterType="String" resultMap="BasImportRecordResult">
            <include refid="selectBasImportRecordVo"/>
            <where>
                import_state = '1'
                and import_table_name = #{tableName}
                and import_batch_num = #{batchNum}
            </where>
        </select>
    </mapper>
    

    在servlet层添加自定义方法

     public AjaxResult importFzzxgzl(List<BasFzzxgzl> basFzzxgzlList, Boolean isUpdateSupport) {
    
            if (StringUtils.isNull(basFzzxgzlList) || basFzzxgzlList.size() == 0) {
                return AjaxResult.error("导入教师发展中心工作量数据不能为空!");
            }
            try {
                basFzzxgzlList.get(0).getJsgh();
            }catch (Exception ex){
                return  AjaxResult.error("导入文件与模板不符!");
            }
    
            if (basFzzxgzlList.size() > 500) {
                return AjaxResult.error("导入教师发展中心工作量不能超过500条!");
            }
            int successNum = 0;
            int failureNum = 0;
            String importBatchBum = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
            for (int i = 0; i < basFzzxgzlList.size(); i++) {
                BasFzzxgzl fzzxgzl = basFzzxgzlList.get(i);
                BasFzzxgzl basFzzxgzl = new BasFzzxgzl();
                BasImportRecord basImportRecord = new BasImportRecord();
                basImportRecord.setImportTableName("bas_fzzxgzl");
                basImportRecord.setImportBatchNum(importBatchBum);
                StringBuffer content = new StringBuffer();
                String jsgh = "", xm = "", xybh = "", xymc = "", directing = "", teacher = "", other = "", remark = "", ssYear = "";
                xybh = StringUtils.isBlank(fzzxgzl.getKkyxbh()) ? " " : fzzxgzl.getKkyxbh();
                xymc = StringUtils.isBlank(fzzxgzl.getKkyxmc()) ? " " : fzzxgzl.getKkyxmc();
                jsgh = StringUtils.isBlank(fzzxgzl.getJsgh()) ? " " : fzzxgzl.getJsgh();
                xm = StringUtils.isBlank(fzzxgzl.getXm()) ? " " : fzzxgzl.getXm();
                directing = fzzxgzl.getDirectingLoad() == null ? "0" : fzzxgzl.getDirectingLoad().toString();
                teacher = fzzxgzl.getTeachingLoad() == null ? "0" : fzzxgzl.getTeachingLoad().toString();
                //wait = fzzxgzl.getWaitLoad() == null ? "0" : fzzxgzl.getWaitLoad().toString();
                other = fzzxgzl.getOtherLoad() == null ? "0" : fzzxgzl.getOtherLoad().toString();
                remark = StringUtils.isBlank(fzzxgzl.getRemark()) ? " " : fzzxgzl.getRemark();
                ssYear = StringUtils.isBlank(fzzxgzl.getSsYear()) ? " " : fzzxgzl.getSsYear();
    
                content.append(jsgh).append("|").append(xm).append("|").append(xybh).append("|").append(xymc).append("|").append(directing).append("|").append(teacher).append("|").append(other).append("|").append(ssYear).append("|").append(remark).append("|");
                basImportRecord.setImportContent(content.toString());
    
                Map<String, Object> map = checkImportError(fzzxgzl);
                JSONArray array = JSONArray.parseArray(map.get("error").toString());
    
                if (array.size() > 0) {
                    failureNum++;
                    //存在异常
                    basImportRecord.setImportLineNum((long) i + 1);
                    basImportRecord.setImportState("1");
                    String error = "";
                    for (int j = 0; j < array.size(); j++) {
                        error += array.get(j) + ",";
                    }
                    //去掉最后一个,
                    error = error.substring(0, error.length() - 1);
                    basImportRecord.setImportInfo(error);
    
                } else {
                    successNum++;
                    //不存在异常
                    basImportRecord.setImportLineNum((long) i + 1);
                    basImportRecord.setImportState("0");
                    basFzzxgzl.setJsgh(fzzxgzl.getJsgh());
                    String name = fzzxgzl.getXm() + "(" + fzzxgzl.getJsgh() + ")";
                    basFzzxgzl.setXm(name);
                    basFzzxgzl.setKkyxbh(fzzxgzl.getKkyxbh());
                    basFzzxgzl.setKkyxmc(fzzxgzl.getKkyxmc());
                    basFzzxgzl.setDirectingLoad(fzzxgzl.getDirectingLoad());
                    basFzzxgzl.setTeachingLoad(fzzxgzl.getTeachingLoad());
                    //basFzzxgzl.setWaitLoad(fzzxgzl.getWaitLoad());
                    basFzzxgzl.setOtherLoad(fzzxgzl.getOtherLoad());
                    basFzzxgzl.setSsYear(fzzxgzl.getSsYear());
                    basFzzxgzl.setRemark(fzzxgzl.getRemark());
                    // 新增
                    insertBasFzzxgzl(basFzzxgzl);
    
                }
                basImportRecord.setCreateTime(DateUtils.getNowDate());
                basImportRecord.setUpdateTime(DateUtils.getNowDate());
                basImportRecordMapper.insertBasImportRecord(basImportRecord);
            }
            if (failureNum > 0) {
                return AjaxResult.error("导入成功" + successNum + "条数据,导入失败" + failureNum + "条数据", importBatchBum);
            } else {
                return AjaxResult.success("导入成功" + successNum + "条数据");
            }
        }
    

    添加自定义的验证导入数据的方法

     public Map<String, Object> checkImportError(BasFzzxgzl fzzxgzl) {
            Map<String, Object> map = new HashMap<>();
            JSONArray jsonAdd = new JSONArray();
    
            if (StringUtils.isBlank(fzzxgzl.getJsgh())) {
                jsonAdd.add("教师工号不能为空");
                map.put("error", jsonAdd);
            } else {
                if (fzzxgzl.getJsgh().length() > 20) {
                    jsonAdd.add("教师工号不能超过20个字符");
                    map.put("error", jsonAdd);
                }
            }
            if (StringUtils.isBlank(fzzxgzl.getXm())) {
                jsonAdd.add("教师姓名不能为空");
                map.put("error", jsonAdd);
            } else {
                if (fzzxgzl.getXm().length() > 50) {
                    jsonAdd.add("教师姓名不能超过50个字符");
                    map.put("error", jsonAdd);
                }
            }
            if (StringUtils.isNotBlank(fzzxgzl.getJsgh()) && StringUtils.isNotBlank(fzzxgzl.getXm())) {
                int jsCount = basYjsgzlMapper.selectCountByJsghAndXm(fzzxgzl.getJsgh(), fzzxgzl.getXm());
                if (jsCount == 0) {
                    jsonAdd.add("教师姓名与教师工号不匹配");
                    map.put("error", jsonAdd);
                } else {
                    int jyCount = basYjsgzlMapper.selectCountByJsghAndYxbh(fzzxgzl.getJsgh(), fzzxgzl.getKkyxbh());
                    if (jyCount == 0) {
                        jsonAdd.add("教师与学院不匹配");
                        map.put("error", jsonAdd);
                    }
    
                }
            }
    
    
            if (StringUtils.isBlank(fzzxgzl.getKkyxbh())) {
                jsonAdd.add("学院编号不能为空");
                map.put("error", jsonAdd);
            } else {
                if (fzzxgzl.getKkyxbh().length() > 20) {
                    jsonAdd.add("学院编号不能超过20个字符");
                    map.put("error", jsonAdd);
                }
            }
            if (StringUtils.isBlank(fzzxgzl.getKkyxmc())) {
                jsonAdd.add("学院名称不能为空");
                map.put("error", jsonAdd);
            } else {
                if (fzzxgzl.getKkyxmc().length() > 100) {
                    jsonAdd.add("学院名称不能超过100个字符");
                    map.put("error", jsonAdd);
                }
            }
            if (StringUtils.isNotBlank(fzzxgzl.getKkyxbh()) && StringUtils.isNotBlank(fzzxgzl.getKkyxmc())) {
                int xyCount = basYjsgzlMapper.selectCountByYxbhAndYxmc(fzzxgzl.getKkyxbh(), fzzxgzl.getKkyxmc());
                if (xyCount == 0) {
                    jsonAdd.add("学院名称与学院编号不匹配");
                    map.put("error", jsonAdd);
                }
            }
            if (fzzxgzl.getDirectingLoad() != null) {
                if (fzzxgzl.getDirectingLoad().toString().length() > 10) {
                    jsonAdd.add("导师工作量不能超过10个字符");
                    map.put("error", jsonAdd);
                } else {
                    if (fzzxgzl.getDirectingLoad().toString().indexOf(".") > 8) {
                        jsonAdd.add("导师工作量整数部分不能超过10位");
                        map.put("error", jsonAdd);
                    } else {
                        if (fzzxgzl.getDirectingLoad().toString().indexOf(".") == -1) {
                            if (fzzxgzl.getDirectingLoad().toString().length() > 8) {
                                jsonAdd.add("导师工作量整数部分不能超过10位");
                                map.put("error", jsonAdd);
                            }
                        }
                    }
                }
                if(fzzxgzl.getDirectingLoad().toString().charAt(0)=='-'){
                    jsonAdd.add("导师工作量不能为负数");
                    map.put("error",jsonAdd);
                }
            }
            if (fzzxgzl.getTeachingLoad() != null) {
                if (fzzxgzl.getTeachingLoad().toString().length() > 10) {
                    jsonAdd.add("助教工作量不能超过10个字符");
                    map.put("error", jsonAdd);
                } else {
                    if (fzzxgzl.getTeachingLoad().toString().indexOf(".") > 8) {
                        jsonAdd.add("助教工作量整数部分不能超过10位");
                        map.put("error", jsonAdd);
                    } else {
                        if (fzzxgzl.getTeachingLoad().toString().indexOf(".") == -1) {
                            if (fzzxgzl.getTeachingLoad().toString().length() > 8) {
                                jsonAdd.add("助教工作量整数部分不能超过10位");
                                map.put("error", jsonAdd);
                            }
                        }
                    }
                }
                if(fzzxgzl.getTeachingLoad().toString().charAt(0)=='-'){
                    jsonAdd.add("助教工作量不能为负数");
                    map.put("error",jsonAdd);
                }
            }
           /* if (fzzxgzl.getWaitLoad() != null) {
                if (fzzxgzl.getWaitLoad().toString().length() > 10) {
                    jsonAdd.add("此列名称待定不能超过10个字符");
                    map.put("error", jsonAdd);
                } else {
                    if (!StringUtils.isNumeric(fzzxgzl.getWaitLoad().toString())) {
                        jsonAdd.add("此列名称待定必须是数字");
                        map.put("error", jsonAdd);
                    }
                }
            }*/
            if (fzzxgzl.getOtherLoad() != null) {
                if (fzzxgzl.getOtherLoad().toString().length() > 10) {
                    jsonAdd.add("其他工作量不能超过10个字符");
                    map.put("error", jsonAdd);
                } else {
                    if (fzzxgzl.getOtherLoad().toString().indexOf(".") > 8) {
                        jsonAdd.add("其他工作量整数部分不能超过10位");
                        map.put("error", jsonAdd);
                    } else {
                        if (fzzxgzl.getOtherLoad().toString().indexOf(".") == -1) {
                            if (fzzxgzl.getOtherLoad().toString().length() > 8) {
                                jsonAdd.add("其他工作量整数部分不能超过10位");
                                map.put("error", jsonAdd);
                            }
                        }
                    }
                }
                if(fzzxgzl.getOtherLoad().toString().charAt(0)=='-'){
                    jsonAdd.add("其他工作量不能为负数");
                    map.put("error",jsonAdd);
                }
            }
            if (!StringUtils.isBlank(fzzxgzl.getRemark())) {
                if (fzzxgzl.getRemark().length() > 50) {
                    jsonAdd.add("备注不能超过50个字符");
                    map.put("error", jsonAdd);
                }
            }
    
            if (!StringUtils.isBlank(fzzxgzl.getSsYear())) {
                if (fzzxgzl.getSsYear().length() > 5) {
                    jsonAdd.add("所属时间不能超过5个字符");
                    map.put("error", jsonAdd);
                } else {
                    if (!StringUtils.isNumeric(fzzxgzl.getSsYear())) {
                        jsonAdd.add("所属时间必须是整数数字");
                        map.put("error", jsonAdd);
                    }
                }
            } else {
                jsonAdd.add("所属时间不能为空");
                map.put("error", jsonAdd);
            }
    
            map.put("error", jsonAdd);
            return map;
        }
    

    导出错误数据的方法

    public HSSFWorkbook drawExport(List<BasImportRecord> list) {
            // 创建excel文件对象
            HSSFWorkbook wb = new HSSFWorkbook();
            // 创建sheet
            Sheet sheet = wb.createSheet("sheet1");
    
            //表头字体
            Font headerFont = wb.createFont();
            headerFont.setFontName("微软雅黑");
            headerFont.setFontHeightInPoints((short) 18);
            headerFont.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
            //正文字体
            Font contextFont = wb.createFont();
            contextFont.setFontName("微软雅黑");
            contextFont.setFontHeightInPoints((short) 12);
            headerFont.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
            //表头样式,左右上下居中
            CellStyle headerStyle = wb.createCellStyle();
            headerStyle.setFont(headerFont);
            headerStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
            headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中
            headerStyle.setLocked(true);
            headerStyle.setWrapText(false);// 自动换行
            headerStyle.setBorderBottom(BorderStyle.MEDIUM); //下边框
            headerStyle.setBorderLeft(BorderStyle.MEDIUM);//左边框
            headerStyle.setBorderTop(BorderStyle.MEDIUM);//上边框
            headerStyle.setBorderRight(BorderStyle.MEDIUM);//右边框
            // 单元格样式,左右上下居中 边框
            CellStyle commonStyle = wb.createCellStyle();
            commonStyle.setFont(contextFont);
            commonStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
            commonStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中
            commonStyle.setLocked(true);
            commonStyle.setWrapText(false);// 自动换行
            commonStyle.setBorderBottom(BorderStyle.MEDIUM); //下边框
            commonStyle.setBorderLeft(BorderStyle.MEDIUM);//左边框
            commonStyle.setBorderTop(BorderStyle.MEDIUM);//上边框
            commonStyle.setBorderRight(BorderStyle.MEDIUM);//右边框
            // 行号
            int rowNum = 0;
            Row r3 = sheet.createRow(rowNum++);
            r3.setHeight((short) 700);
            String[] row = {"教师工号", "教师名称", "开课院系编号", "开课院系名称", "导师工作量", "助教工作量", "其他工作量", "所属年份", "备注", "失败原因"};
            for (int i = 0; i < row.length; i++) {
                Cell tempCell = r3.createCell(i);
                tempCell.setCellValue(row[i]);
                tempCell.setCellStyle(commonStyle);
            }
            //解析导入错误信息
            for (BasImportRecord bir : list) {
                String[] content = bir.getImportContent().split("\\|");
                Row tempRow = sheet.createRow(rowNum++);
                tempRow.setHeight((short) 500);
                // 循环单元格填入数据
                for (int j = 0; j < 10; j++) {
                    Cell tempCell = tempRow.createCell(j);
                    tempCell.setCellStyle(commonStyle);
                    String tempValue;
                    if (j < 9) {
                        tempValue = StringUtils.isBlank(content[j]) ? "" : content[j];
                    } else {
                        tempValue = StringUtils.isBlank(bir.getImportInfo()) ? "" : bir.getImportInfo();
                    }
                    tempCell.setCellValue(tempValue);
                }
            }
    
            for (int o = 0; o < 10; o++) {
                sheet.autoSizeColumn((short) o);
            }
            return wb;
        }
    

    在CommonController这个中的importRecordDownload方法中添加

    @GetMapping("importRecord/download")
        public void importRecordDownload(String fileName,String tableName,String importBatchBum,Boolean delete, HttpServletResponse response, HttpServletRequest request)
        {
            List<BasImportRecord> list = basImportRecordMapper.selectByTableNameAndBatchNum(tableName,importBatchBum);
            HSSFWorkbook wb = new HSSFWorkbook();
            if(tableName.equals("bas_fzzxgzl")){
                //教师发展中心工作量
                wb = basFzzxgzlService.drawExport(list);
    
            }
            //响应到客户端
            try {
                response.setContentType("multipart/form-data");
                response.setCharacterEncoding("utf-8");
                response.setHeader("Content-Disposition",
                        "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, fileName+importBatchBum+"批次导入失败记录表.xls"));
                OutputStream outputStream = response.getOutputStream();
                wb.write(outputStream);
                outputStream.flush();
                outputStream.close();
            } catch (Exception e) {
                log.error("下载文件失败", e);
            }
        }
    

    注意此方法中的tableName.equals(“bas_fzzxgzl”)这个bas_fzzxgzl必须和前端页面中的 tableName: “bas_fzzxgzl”,
    相对应

    展开全文
  • 前几天在一个环境上做了一个expdp 导出测试,但是发现expdp有问题,操作系统是aix 6105,oracle版本是11.1.0.7,执行expdp时候报错如下Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - ...

    前几天在一个环境上做了一个expdp 导出测试,但是发现expdp有问题,操作系统是aix 6105,oracle版本是11.1.0.7,执行expdp时候报错如下

    Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production

    With the Partitioning, Oracle Label Security, OLAP, Data Mining

    and Real Application Testing options

    ORA-31626: job does not exist

    ORA-31637: cannot create job SYS_EXPORT_FULL_01 for user SYSTEM

    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

    ORA-06512: at "SYS.KUPV$FT_INT", line 736

    ORA-39080: failed to create queues "KUPC$C_1_20140214183234" and "" for Data Pump job

    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

    ORA-06512: at "SYS.KUPC$QUE_INT", line 1665

    ORA-24203: operation failed, queue table SYS.KUPC$DATAPUMP_QUETAB has errors

    后来查看一下数据库中的无效的数据库对象

    SQL> select object_name from all_objects where owner='SYS' and status='INVALID';

    OBJECT_NAME

    ------------------------------

    KUPC$DATAPUMP_QUETAB

    SYSNTfVzZ/2KLQNTgQ8CoAAJA1A==

    SYSNTfVzZ/2KNQNTgQ8CoAAJA1A==

    SYSNTfVzZ/2KPQNTgQ8CoAAJA1A==

    AQ$_KUPC$DATAPUMP_QUETAB_V

    AQ$_KUPC$DATAPUMP_QUETAB_E

    AQ$_KUPC$DATAPUMP_QUETAB_F

    AQ$KUPC$DATAPUMP_QUETAB

    SBF_PUBLIC

    9 rows selected.

    发现无效对象中有datapump组件,后来经过同事介绍在metalink 上有关于此问题解决办法

    解决方法

    1. 删除 datapump queue 表,在sql下 执行下面

    exec dbms_aqadm.drop_queue_table(queue_table =>'SYS.KUPC$DATAPUMP_QUETAB',

    force=> TRUE);

    2.执行下面存储过程再次创建

    BEGIN

    dbms_aqadm.create_queue_table(queue_table => 'SYS.KUPC$DATAPUMP_QUETAB',

    multiple_consumers => TRUE,

    queue_payload_type =>'SYS.KUPC$_MESSAGE',

    comment => 'DataPump Queue Table',

    compatible=>'8.1.3');

    EXCEPTION

    WHEN OTHERS THEN

    IF SQLCODE = -24001 THEN NULL;

    ELSE RAISE;

    END IF;

    END;

    3.再次执行一个utlrp.sql

    4 再次查下一个无效组件

    SQL> select object_name from all_objects where owner='SYS' and status='INVALID';

    OBJECT_NAME

    ------------------------------

    SBF_PUBLIC

    5 重启一下实例,最后expdp可以正常运行了,此解决方法原始出处是在metalink 上一篇文章,文章ID 361025.1  最后谢谢我的同事!

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26175573/viewspace-1086188/,如需转载,请注明出处,否则将追究法律责任。

    展开全文
  • InDesign 导出印刷用PDF时如何设置?

    千次阅读 2021-01-17 01:40:52
    摘要:用ID排版时,最终文件往往要导出成pdf格式的文件用于印刷,而导出设置在细节上往往会出现一些让人疑惑的选项。相关视频教程学习推荐: 平面设计—零基础到进阶系统讲解【英语中字|正版】7,067人在学总时长:8h ...

    摘要:用ID排版时,最终文件往往要导出成pdf格式的文件用于印刷,而导出设置在细节上往往会出现一些让人疑惑的选项。

    相关视频教程学习推荐:

    8b40300b02ad9ad904b92a83d297c4fa.png

    平面设计—零基础到进阶系统讲解【英语中字|正版】

    7,067人在学

    总时长:8h 15m

    Q

    1.图片置入问题:ai有嵌入选项,而indesign没有(或者我没有找到吧)且ai的图像栅格化直接在本软件内将图像模式改成cmyk。请问indesign是否需要先在ps内改变图像模式?这一条是百度的,有人说需要,又有人说不需要(在导出pdf的时候会自动转换的)

    2.导出pdf选项:除却转曲、pdf预设选择印刷质量、勾选出血设置之外,能详细解释一下输出选项下各个下拉选项的含义?

    A

    1.inDesign 的便利之处就在于图像不需要做类似于Ai 里面的嵌入步骤,图像想要集中处理可以使用打包功能生成单独的图片包,再对图片单独或批量进行处理。至于是否需要在Ps 内改变图像模式,因需而异,图片里面即使有RGB 模式,印前检查也不会提示错误,因为inDesign 的输出选项允许把输出的文档转换成设定的颜色模式。

    InDesign 置入后的文件用「链接」面板管理,可以在该面板中将链接「嵌入」。但对于大型项目,不便于管理的「嵌入」不值得推荐。InDesign 有「打包」功能,可以把所有的链接汇总到一起,所以没有「嵌入」的必要。

    展开全文
  • excel文件下载成功后打开文件遇到错误之前的下载代码:private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {try {response.setCharacterEncoding("UTF-8");...
  • 使用火狐浏览器可以下载文件,谷歌浏览器报网络错误 参考 https://blog.csdn.net/weixin_44285250/article/details/86229277 导出csv https://blog.csdn.net/u010652866/article/details/90513721 使用 Blob 1 ...
  • 进一步的说明:我关闭MySQL Workbench并打开终端并运行mysqldump --version,它给了我这个错误:mysqldump: [ERROR] unknown variable 'local_infile=1'.,我意识到我已经添加了一些东西到先前的/etc/my.cnf文件,...
  • Photoshop 2021 for mac 在M1上导出 PNG 时,会提示“发生了未知错误”,即使点击“导出”按钮,导出的图片也是一个空白文件。小编教给大家 Ps 2021在 M1 mac上导出 PNG 格式发生未知错误的解决方法。 ...
  • MySQL 导出为CSV

    2021-02-07 17:48:09
    MySQL 导出为CSVMySQL具有将表导出到CSV文件的功能。 CSV文件格式是逗号分隔的值,我们可以使用它在各种应用程序(例如 Microsoft Excel ,Goole Docs)之间交换数据,然后打开办公室。具有 CSV数据的MySQL数据很有用...
  • 现在建站主要使用的还是ASP与PHP,这两种语言一般使用的数据库分别SQL Server和mysql,这两种数据库各有各长处,也说不上谁好谁坏,看个人习惯了。...在数据库导入导出时总失败,错误信息如下:代...
  • 关于GTID是5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。 官方给的:A global transaction identifier (GTID) is a unique identifier created and associated with each...
  • 总是因为各种细节来来回回画了不下10遍,每次都是导出数据然后打开excel把数据复制到origin,然后在origin种经历一通卡顿的调图操作导出图片,然后再把图片插入word中,非常繁琐总是容易粗心大意犯各种小错误导致...
  • 今天要求将部分表数据导出提供的exp导出脚本如下:USERID=x/x@xBUFFER=102400ROWS=YLOG=T_DAYLOG_CALLBYSERVICE.logFILE=T_DAYLOG_CALLBYSERVICE.dmptables=T_DAYLOG_CALLBYSERVICEquery="wherelogdatebetweento_...
  • 今天发现原来exp命令除了可以导出整个表的数据,也可以导出某张表的部分数据.环境:Oracle 10g例如:网上的例子:$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/...
  • 一、Exp导出日志报错. .正在导出表tmp_T_SHEET导出了0行.正在导出同义词.正在导出视图.正在导出存储过程.正在导出运算符.正在导出引用完整性约束条件.正在导出触发器.正在导出索引类型.正在导出位图,功能性索引和可...
  • sqoop错误日志:14/05/08 12:25:40 INFO mapred.JobClient: Task Id : attempt_201405071437_0013_m_000000_0, Status : FAILEDjava.io.IOException: Can't export data, please check task tracker logsat org....
  • 一、背景以前使用SQL Server进行表分区的时候就碰到很多关于唯一索引的问题:Step8:SQL Server 当表分区遇上...这些问题的根源在什么地方?有什么共同点?MySQL中也有分区对齐的概念?唯一索引是在很多系统中都会...
  • 将网页中的table数据,导出到excel表格,可以使用java POI实现。java poi是java中操作excel的工具,支持excel的导入与导出,一般有三种形式:1.HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls;2....
  • OSS 阿里云对象存储服务,AnalyticDB for PostgreSQL 支持通过 OSS 外部表(即 gpossext 功能),将数据并行从 OSS云存储导入或导出到 OSS云存储,并支持通过 gzip 进行 OSS 外部表文件压缩,大量节省存储空间及成本...
  • 注意此处引入地址,本人放在同级目录下,应根据个人项目目录引入 const toExcel = (tableId, title) => { // tableId 表格id,title导出文件名称 var xlsxParam = { raw: true };//转换成excel时,...
  • linux exp 导出数据库

    2021-05-08 23:20:16
    解决Linux系统下exp导入EXP-00028异常问题描述:在Linux系统中,对某个数据库用户进行exp导出备份时,出现下述异常:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the ...
  • 在9.2.0.8 rac环境中,使用exp导出来dmp文件任何报错(按单个表,按用户导出,使用tns方式远程exp导出),包括重启数据库后导出,无法导入到其他数据库中(本库,tns方式远程导入,ftp传输到远程导入,9i/10g/11g版本)报错...
  • 先写正确的导出命令: mongoexport -h 127.0.0.1 --port 27017 -d mqtt -c XiaoMi8/Location -f altitude,speed,bearing,lon,lat,accuracy,time,T --type=csv -o bike.csv --sort {time:1} --noHeaderLine -q "{\...
  • 如何将swagger json导出为优雅的doc或者pdf文档生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的...
  • js-log-report前端错误日志采集上报、上报给后端分析错误日、主要用于移动端各手机类型错误日志的收集分析业务背景在开发Vue移动端项目,运营同学反馈了一个客户手机上页面白屏的问题、此时说第一句话是,在我的手机...
  • mysql导入导出数据

    2021-01-19 21:12:12
    mysqldump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据作为测试。mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式...
  • 本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html具体原文找不到了,此篇是借鉴门户的一篇文章方法一:查询语句直接输出语法格式:Example:select * ...cat where 1 order by cat_id desc limit 0,2...
  • Initializing JVM Metrics with processName=JobTracker, sessionId= 17/04/07 14:22:17 ERROR tool.ExportTool: Encountered IOException running export job: java.io.FileNotFoundException: File file:/hdp/...
  • ORACLE导出错误-EXP-00056: 遇到 ORACLE 错误 600点击右边红色标题查看本文完整版:ORACLE导出错误-EXP-00056: 遇到 ORACLE 错误 600即将导出指定的用户.... 正在导出 pre-schema 过程对象和操作. 正在导出用户 GMS ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,743
精华内容 43,497
关键字:

为什么id导出错误