java代码实现导出或者下载xml、word、pdf、excel功能

2023-11-04

java代码实现导出或者下载xml、word、pdf、excel功能

写在前面:将用户操作日志以xml、word、pdf、excel格式的文件导出。

1、导出xml

导出xml使用JAXB的注解实现,实体如下

import javax.xml.bind.annotation.*;
import java.util.List;

@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "", propOrder = {
        "title",
        "log"
})
@XmlRootElement(name = "Body")
public class Submit {

    private String title;

    protected List<LogX> logX;

    @XmlElementWrapper(name = "logList")
    public List<LogX> getLog() {
        return logX;
    }

    public void setLog(List<LogX> logX) {
        this.logX = logX;
    }

    @XmlElement(name = "title", required = true,nillable=true)
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

LogX实体如下:

import javax.xml.bind.annotation.*;
import java.io.Serializable;


@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "", propOrder = {
        "username",
        "operationIp",
        "createTime",
        "operation",
        "content"
})
@XmlRootElement(name = "log")
public class LogX implements Serializable {

    private static final long serialVersionUID = 1L;

    protected String content;

    protected String createTime;

    protected String operation;

    protected String username;

    protected String operationIp;

    @XmlElement(name = "content", required = true,nillable = true)
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @XmlElement(name = "createTime", required = true,nillable = true)
    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    @XmlElement(name = "operation", required = true,nillable = true)
    public String getOperation() {
        return operation;
    }

    public void setOperation(String operation) {
        this.operation = operation;
    }

    @XmlElement(name = "username", required = true,nillable = true)
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @XmlElement(name = "operationIp", required = true,nillable = true)
    public String getOperationIp() {
        return operationIp;
    }

    public void setOperationIp(String operationIp) {
        this.operationIp = operationIp;
    }
}

@XmlAccessorType:便于对象与xml文件之间的转换
@XmlType中:参数propOrder指定映射XML时的节点顺序,使用该属性时,必须列出JavaBean对象中的所有字段,否则会报错。
@XmlRootElement :xml 文件的根元素
@XmlElementWrapper:仅允许出现在集合属性上,使用该注解后,将会在原xml结点上再包装一层xml
@XmlElement:字段,方法,参数级别的注解。该注解可以将被注解的(非静态)字段,或者被注解的get/set方法对应的字段映射为本地元素,也就是子元素。参数 name用于指定映射时的节点名称,指定生成元素的名字,若不指定,默认使用方法名小写作为元素名;参数 required字段是否必须,默认为false;参数 nillable是否处理空数据,默认为false。
其他关于JAXB的注解,大家就根据需要自行百度一下~

        Submit submit = new Submit();
        submit.setTitle(date2Str + "_logs");
        //这里给loxList集合赋值
        List<LogX> logXList = new ArrayList<>();
        submit.setLog(logXList);
        JAXBContext jc = null;
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        String fileName = submit.getTitle() + ".xml";
        ByteArrayOutputStream bis = null;
        FileOutputStream fileOutputStream = null;
        try {
            jc = JAXBContext.newInstance(Submit.class);
            Marshaller marshaller = jc.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
            marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
            StringWriter writer = new StringWriter();
            marshaller.marshal(submit, writer);
            String content = writer.toString().replaceAll(JoinConstant.JAXB_NILL_STR, "");
            byte[] bs = content.getBytes("UTF-8");
            File file2 = new File(fileName);
            fileOutputStream = new FileOutputStream(file2);
            file2.createNewFile();
            fileOutputStream.write(bs);
            fileOutputStream.close();
            download(file2, res);
        } catch (JAXBException e) {
            e.printStackTrace();
            throw new RuntimeException("xml生成出错", e);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            try {
                if (null != bis) bis.close();
                if (null != stream) stream.close();
            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }

涉及到的download方法如下:

private void download(File file, HttpServletResponse res) {
        String fileName = file.getName();
        res.setHeader("content-type", "application/octet-stream");
        res.setContentType("application/octet-stream;charset=UTF-8");
        res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
        byte[] buff = new byte[1024];
        BufferedInputStream bis = null;
        OutputStream os = null;
        try {
            os = res.getOutputStream();
            bis = new BufferedInputStream(new FileInputStream(
                    new File(file.getAbsolutePath())));
            int i = bis.read(buff);
            while (i != -1) {
                os.write(buff, 0, buff.length);
                os.flush();
                i = bis.read(buff);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
2、导出word

使用freemarker技术在web后台导出word文档:
具体步骤为:

1、设计word模版
2、修改ftl模版
3、 填充数值,导出word模板
4、生成Word模板
生产word模版主要为:一个是把word文档另存为xml文档;然后把xml文档后缀改为ftl文档****
如下图,我所需要的模板为:
在这里插入图片描述
然后使用sublime打开后缀名为ftl的文件,通过sublime插件,将ftl文件格式化,然后找到如下图所示位置进行编辑
在这里插入图片描述
注意${log.xh}等其他的标签的修改

代码如下:

        Map<String, Object> beanParams = new HashMap<String, Object>();
        //这里给loglist集合赋值
        List<LogView> loglist = new ArrayList<>();
        String date2Str = DateSearchUtils.date2Str(new Date());
        beanParams.put("title", date2Str+"日志信息");
        beanParams.put("loglist", loglist);
        beanParams.put("attention", "请注意确保所有信息的正确性");
        WordExportUtil.WordExportUtil(request, response, WordExportUtil.WORD_2003, "日志信息列表导出", "templateFile.ftl", beanParams,getExcelDir());
    

涉及到的WordExportUtil.WordExportUtil()方法如下:

    public static String WORD_2007 = "WORD_2007";
    public static String WORD_2003 = "WORD_2003";

    /**
     * 设置下载文件中文件的名称
     * @param filename
     * @param request
     * @return
     */
    public static String encodeFilename(String filename, HttpServletRequest request) {
        String agent = request.getHeader("USER-AGENT");
        try {
            if ((agent != null) && (-1 != agent.indexOf("MSIE"))) {
                String newFileName = URLEncoder.encode(filename, "UTF-8");
                newFileName = StringUtils.replace(newFileName, "+", "%20");
                if (newFileName.length() > 150) {
                    newFileName = new String(filename.getBytes("GB2312"), "ISO8859-1");
                    newFileName = StringUtils.replace(newFileName, " ", "%20");
                }
                return newFileName;
            }
            if ((agent != null) && (-1 != agent.indexOf("Mozilla")))
                return MimeUtility.encodeText(filename, "UTF-8", "B");
            return URLEncoder.encode(filename, "UTF-8");
        } catch (Exception ex) {
            return filename;
        }
    }
    /**
     * @param request  HttpServletRequest
     * @param response HttpServletResponse
     * @param version  Word_2003/Word_2007
     * @param docFileName 生成的doc临时文件名
     * @param templateFile  freemark模板文件名
     * @param beanParams  入参数据:  Map<String, Object>类型
     */
    public static void writeResponse(HttpServletRequest request, HttpServletResponse response, String version, String docFileName, String templateFile, Map<String, Object> beanParams,String getExcelDir) {
        writeResponse(request, response, version, "temp", docFileName, "template", templateFile, beanParams, getExcelDir);
    }

    /**
     * @param request  HttpServletRequest
     * @param response HttpServletResponse
     * @param version  Word_2003/Word_2007
     * @param docTempDir  生成的doc临时文件目录
     * @param docFileName 生成的doc临时文件名
     * @param templateDir 存放freemark模板的目录
     * @param templateFile freemark模板文件名
     * @param beanParams   入参数据:  Map<String, Object>类型
     */
    public static void writeResponse( HttpServletRequest request, HttpServletResponse response, String version, String docTempDir, String docFileName, String templateDir, String templateFile, Map<String, Object> beanParams,String getExcelDir) {
        Configuration config = new Configuration();
        ServletContext sc = request.getSession().getServletContext();
        InputStream is = null;
        File previewFile = null;
        try {
            config.setDirectoryForTemplateLoading(new File(getExcelDir));
            config.setObjectWrapper(new DefaultObjectWrapper());
            Template template = config.getTemplate(templateFile, "UTF-8");
            String date2Str = DateSearchUtils.date2Str(new Date());
            String docFileName1 = date2Str+"_logs";
            if (WORD_2007.equals(version)) {
                docFileName1 = encodeFilename(docFileName1 + ".docx", request);
            } else {
                docFileName1 = encodeFilename(docFileName1 + ".doc", request);
            }
            String docName = "D:\\join\\excel"+docFileName;
            FileOutputStream fos = new FileOutputStream(docName);
            Writer out = new OutputStreamWriter(fos, "UTF-8");
            template.process(beanParams, out);
            out.flush();
            out.close();
            previewFile = new File(docName);
            is = new FileInputStream(previewFile);
            response.reset();
            if (WORD_2007.equals(version)) {
                response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8");
            }else{
                response.setContentType("application/vnd.ms-word;charset=UTF-8");
            }
            response.addHeader("Content-Disposition", "attachment;filename="+docFileName1);
            byte[] b = new byte[1024];
            int len;
            while ((len=is.read(b)) >0) {
                response.getOutputStream().write(b,0,len);
            }
            response.getOutputStream().flush();
            response.getOutputStream().close();

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(is!=null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(previewFile!=null){
                previewFile.delete();
            }
        }
    }

3、导出pdf
// 新建文件
            String date2Str = DateSearchUtils.date2Str(new Date());
            String fileName = date2Str + "_logs.pdf";
            Document document = new Document();
            File file = new File(fileName);
            PdfWriter.getInstance(document, new FileOutputStream(file));
            document.open();
            BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 中文字体
            com.itextpdf.text.Font FontChinese18 = new com.itextpdf.text.Font(bfChinese, 18, com.itextpdf.text.Font.BOLD);
            //设置名字
            Paragraph pg_bt = new Paragraph("日志列表", FontChinese18);
            pg_bt.setAlignment(Element.ALIGN_CENTER);
            document.add(pg_bt);
            // Font fontChineseBold = new Font(bfChinese, 14, Font.BOLD);//内容字体特殊加粗
            Font titleChinese = new Font(bfChinese, 18, Font.BOLD);// 标题字体
            //    Font noteChinese = new Font(bfChinese, 12, Font.BOLD);//设置内容加粗的区
            Font contenttitleChinese = new Font(bfChinese, 12, Font.BOLD);// 内容小标题字体
            //这里给logViews 集合赋值
            List<LogView> logViews = new ArrayList<>();
            // 每行加空白
            pg_bt = new Paragraph(" ", titleChinese);
            pg_bt.setAlignment(Element.ALIGN_LEFT);
            document.add(pg_bt);
            SimpleDateFormat start = new SimpleDateFormat("HH:mm");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            PdfPTable table5 = new PdfPTable(2);
            int width5[] = {80, 20};
            table5.setWidths(width5);
            PdfPCell cell51 = new PdfPCell(new Paragraph("日志打印时间 :  " + sdf.format(new Date()), contenttitleChinese));
            PdfPCell cell52 = new PdfPCell(new Paragraph("", contenttitleChinese));
            cell51.setBorder(0);
            cell52.setBorder(0);
            table5.addCell(cell51);
            table5.addCell(cell52);
            table5.setHorizontalAlignment(Element.ALIGN_LEFT);
            document.add(table5);
            //加入空行
            Paragraph blankRow51 = new Paragraph(18f, " ", contenttitleChinese);
            document.add(blankRow51);
            int col = 6;
            PdfPTable table = new PdfPTable(col);
            BaseColor bc = new BaseColor(102, 204, 255);
            //设置表格占PDF文档100%宽度
            table.setWidthPercentage(100);
            table.setWidths(new int[]{8, 12, 15, 20, 15, 30});
            BaseColor lightGrey01 = new BaseColor(0xCC, 0xCC, 0xCC);
            PdfPCell cell0 = toPdfPCell("序号", Element.ALIGN_CENTER);
            cell0.setBackgroundColor(lightGrey01);
            table.addCell(cell0);
            PdfPCell cell1 = toPdfPCell("用户名", Element.ALIGN_CENTER);
            cell1.setBackgroundColor(lightGrey01);
            table.addCell(cell1);
            PdfPCell cell2 = toPdfPCell("访问ip", Element.ALIGN_CENTER);
            cell2.setBackgroundColor(lightGrey01);
            table.addCell(cell2);
            PdfPCell cell3 = toPdfPCell("创建时间", Element.ALIGN_CENTER);
            cell3.setBackgroundColor(lightGrey01);
            table.addCell(cell3);
            PdfPCell cell4 = toPdfPCell("操作", Element.ALIGN_CENTER);
            cell4.setBackgroundColor(lightGrey01);
            table.addCell(cell4);
            PdfPCell cell5 = toPdfPCell("日志内容", Element.ALIGN_CENTER);
            cell5.setBackgroundColor(lightGrey01);
            table.addCell(cell5);
            if (logViews.size() > 0) {
                for (LogView view : logViews) {
                    table.addCell(toPdfPCell(view.getXh(), Element.ALIGN_CENTER));
                    table.addCell(toPdfPCell(view.getUsername(), Element.ALIGN_CENTER));
                    table.addCell(toPdfPCell(view.getAccessEndIp(), Element.ALIGN_CENTER));
                    table.addCell(toPdfPCell(DateSearchUtils.longToDate(view.getCreateTime()), Element.ALIGN_CENTER));
                    table.addCell(toPdfPCell(view.getOperation(), Element.ALIGN_CENTER));
                    table.addCell(toPdfPCell(view.getContent(), Element.ALIGN_CENTER));
                }
            }
            document.add(table);
            document.close();
            download(file, res);
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

涉及到的toPdfPCell()方法如下:

public PdfPCell toPdfPCell(String name, int align) throws DocumentException, IOException {
        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 中文字体
        Font fontChinese = new Font(bfChinese, 12, Font.NORMAL);// 内容字体
        PdfPCell cell = new PdfPCell(new Paragraph(name, fontChinese));
        cell.setHorizontalAlignment(align);// 设置内容水平居中显示
        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);  // 设置垂直居中
        return cell;
    }
4、导出excel

参考地址:http://easypoi.mydoc.io/

5、所需的maven依赖为:
<dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.yulintu</groupId>
            <artifactId>common-excel</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.23</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>5.2.0.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>RELEASE</version>
        </dependency>

效果图如下:

6、导出的xml格式的文件内容如下:

在这里插入图片描述

7、导出的word格式的文件内容如下:

在这里插入图片描述

8、导出的pdf格式的文件内容如下:

在这里插入图片描述

9、导出的excel格式的文件内容如下:

在这里插入图片描述

写在最后:可能在进行这个功能实现时,我所采用的方法并不是最合理的,大家一起学习嘛

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java代码实现导出或者下载xml、word、pdf、excel功能 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • Java Web项目部署到Linux后的中文乱码问题

    问题描述 项目通过Maven打成war包传输到Linux上 SQL导出数据和结构后在Linux上的Mysql执行 数据都能正常显示 项目也是正常的访问到了index html 一切显得毫无问题 开始测试项目各个功能是否有异常 当我检查到我的
  • python练习.求s=a+aa+aaa+aaaa+aa...a的值

    题目 求s a aa aaa aaaa aa a的值 其中a是一个数字 例如2 22 222 2222 22222 此时共有5个数相加 几个数相加由键盘控制 from functools import reduce n 0 s n int
  • SegFormer 代码详解+数据流分析

    目录 代码详解 数据流分析 数据流及尺寸变化 输入为512x512x3的图片 使用b0主干网络 Encoder mit backbone Transformer Block 解码头 Head 代码详解 import torch 导入PyTo
  • java内存模型的角度分析volatile关键字

    多任务处理 多任务处理的背景 计算机的运算能力增强 计算机的运算速度与它的存储和通信子系统的速度差距太大 大量的时间都花费在磁盘I O 网络通信或者数据库访问中上 我们不希望处理器在大部分时间里都处于等待其他资源的空闲状态 计算机多任务处理
  • Thymeleaf的常用表达式及简单使用实例

    什么是Thymelaf 它是非常可拓展的 允许自定义名字来定义一组模板属性 或者甚至是标签 它还带有一些称为标准方言的东西 它们定义了一组功能 这些功能满足大多数情况 标准表达式五种类型 变量表达式 选择表达式 消息表达式 i18n 链接表
  • 不使用PCL库,C++保存PLY文件

    输入文件名和TriangulatePoints的结果 void savePLY const std string ply3D filename cv Mat pnts time t t time 0 char tmp1 64 strftim
  • 三因素方差分析_多因变量方差分析和方差成分分析

    点击蓝字关注我们 什么是多因变量方差分析 1 SPSS的一般线性模型中的多变量过程提供多因变量的方差分析 多因变量方差分析模型的因变量是尺度变量 连续变量 分类变量作为固定因素变量 协变量必须是尺度变量 该模型是基于尺度因变量与作为预测因子
  • gre报文长度解析

    pTemp为GRE报文头指针 unsigned char getGreHdrLen unsigned char pTemp unsigned char greflags1 pTemp unsigned char greflags2 pTem
  • poj 3280 Cheapest Palindrome(区间DP)[增删改变简单回文串]

    题目大意 给出一个由n个小写字母组成的 长度为m的字符串字符串来 对这个字符串进行删除字母或者添加字母 使得该字符串是一个回文串 每一步删除和添加每个字母都有对应的代价 求将该字符串转成回文串的最小代价 对于一个串来说在一端删除一个字母和再
  • dy之__ac_signature

    文章目录 目标网站 参数定位 补环境代码 python 测试 往期逆向文章推荐 JS逆向之今日头条signature JS逆向之淘宝sign JS逆向之知乎jsvmp算法 JS逆向之艺恩数据 JS逆向之网易云音乐 JS逆向之巨量星图sign
  • 如何去实践一个完整的数据挖掘项目?

    每日一问 如何去实践一个完整的数据挖掘项目 机器学习项目 1 抽象成数学问题 明确问题 2 获取数据 3 特征预处理与特征选择 4 训练模型与调优 5 模型诊断 6 模型融合 非必须 7 上线运行 大部分机器学习项目死在第1步和第2步 平时
  • Python删除缺失值所在行

    转载 https blog csdn net qq 35843543 article details 106471278 关键内容 data dropna how all 传入这个参数后将只丢弃全为缺失值的那些行 data dropna a
  • python+webdriver解决:web页面大小调整和滚动

    因为页面显示不全导致页面的元素定位失败 可以缩小 滚动web页面把想要定位的元素显示出来 原地址连接 https www cnblogs com wdana p 12037567 html
  • 【目标检测】18、RetinaNet:Focal Loss for Dense Object Detection

    文章目录 一 背景 二 方法 2 1 Focal loss 2 2 RetinaNet 网络结构 三 效果 论文 Focal Loss for Dense Object Detection 代码 https github com faceb
  • mybatis mysql 批量_mysql使用mybatis批量更新问题

    一 好言 在光芒万丈之前 我们都要欣然接受眼下的难堪和不易 接受一个人的孤独和偶尔的无助 二 背景 其实这是在处理一个问题的时候 需要批量更新数据 结果这个批量更新数据是有问题的 所以改了顺便记载下 问题 SQL update t user
  • spring boot版本太高导致Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path

    org springframework beans factory BeanCreationException Error creating bean with name configurationPropertiesBeans defin
  • Acwing算法提高课—搜索

    搜索 BFS Flood Fill AcWing 1097 池塘计数 AcWing 1098 城堡问题 AcWing 1106 山峰和山谷 最短路模型 AcWing 1076 迷宫问题 AcWing 188 武士风度的牛 AcWing 11
  • Unity3d学习之路-简单巡逻兵

    简单巡逻兵 简单巡逻兵 游戏规则与游戏要求 游戏UML类图 游戏实现 巡逻兵部分 巡逻兵预制体 巡逻兵创建 巡逻兵巡逻与追捕 玩家部分 区域部分 订阅与发布模式部分 发布事件类 订阅者 水晶触碰 玩家
  • 2021年 至 2023年 mysql国家法定节假日脚本

    2021年 至 2023年 mysql国家法定节假日脚本 查阅相关资料 根据日历表核对数据 获取2021 2022 2023年数据 建表语句 DROP TABLE IF EXISTS public holiday info CREATE T
  • java代码实现导出或者下载xml、word、pdf、excel功能

    java代码实现导出或者下载xml word pdf excel功能 写在前面 将用户操作日志以xml word pdf excel格式的文件导出 1 导出xml 导出xml使用JAXB的注解实现 实体如下 import javax xml