freemarker导出word文件实现动态列合并


程序员的公众号:源1024,获取更多资料,无加密无套路!

最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等
获取方式: 关注公众号并回复 666 领取,更多内容持续奉上


 以上图片来自AI:Gnomic-智能体平台

添加依赖

 <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.32</version></dependency>

word文件内容

另存为xml格式,然后修改后缀为ftl,关键模板内容如下:

<w:body><wx:sect><w:p><w:pPr><w:spacing w:line="360" w:line-rule="auto"/><w:ind w:first-line="880" w:first-line-chars="200"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="44"/><w:sz-cs w:val="44"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>Freemarker 合并</w:t></w:r></w:p><w:p><w:pPr><w:spacing w:line="360" w:line-rule="auto"/><w:ind w:first-line="480" w:first-line-chars="200"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/></w:rPr><w:t>一、</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>描述</w:t></w:r></w:p><w:p><w:pPr><w:spacing w:line="360" w:line-rule="auto"/><w:ind w:first-line="480" w:first-line-chars="200"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="default"/><w:sz w:val="24"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${desc}</w:t></w:r></w:p><w:p><w:pPr><w:spacing w:line="360" w:line-rule="auto"/><w:ind w:first-line="480" w:first-line-chars="200"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/></w:rPr><w:t>二、</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>数据</w:t></w:r></w:p><w:p/><w:p><w:pPr><w:pStyle w:val="a2"/></w:pPr></w:p><w:p><w:pPr><w:spacing w:line="360" w:line-rule="auto"/><w:ind w:first-line="480" w:first-line-chars="200"/><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="default"/><w:sz w:val="24"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/><w:sz w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>${col?if_exists}</w:t></w:r></w:p><w:tbl><w:tblPr><w:tblW w:w="4955" w:type="dxa"/><w:jc w:val="center"/><w:tblInd w:w="0" w:type="dxa"/><w:tblBorders><w:top w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:left w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:bottom w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:right w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideH w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideV w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/></w:tblBorders><w:tblLayout w:type="Fixed"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr><w:tblGrid><w:gridCol w:w="709"/><w:gridCol w:w="1276"/><w:gridCol w:w="1275"/><w:gridCol w:w="1695"/></w:tblGrid><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:left w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:bottom w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:right w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideH w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideV w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr><w:trHeight w:val="403" w:h-rule="atLeast"/><w:jc w:val="center"/></w:trPr><w:tc><w:tcPr><w:tcW w:w="709" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:spacing w:line="260" w:line-rule="exact"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>序号</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1276" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:spacing w:line="260" w:line-rule="exact"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>姓名</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1275" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:spacing w:line="260" w:line-rule="exact"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>年龄</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1695" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:spacing w:line="260" w:line-rule="exact"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:fareast="楷体_GB2312"w:hint="fareast"/><w:b/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz w:val="24"/><w:sz-cs w:val="32"/><w:lang w:val="EN-US" w:fareast="ZH-CN"/></w:rPr><w:t>成绩</w:t></w:r></w:p></w:tc></w:tr><#assign index = 0><#list colList as col><#if  col?is_last><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:left w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:bottom w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:right w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideH w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideV w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr><w:trHeight w:val="261" w:h-rule="atLeast"/><w:jc w:val="center"/></w:trPr><w:tc><w:tcPr><w:tcW w:w="709" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/><#--合并两列--><w:gridSpan w:val="3"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr><#assign index = index + 1><w:t>合计</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1276" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:widowControl/><w:jc w:val="center"/><w:textAlignment w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:kern w:val="0"/><w:sz-cs w:val="21"/><w:lang w:bidi="AR-SA"/></w:rPr><w:t>${col.score?if_exists}</w:t></w:r></w:p></w:tc></w:tr><#else><w:tr><w:tblPrEx><w:tblBorders><w:top w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:left w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:bottom w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:right w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideH w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/><w:insideV w:val="single" w:sz="8" wx:bdrwidth="20" w:space="0" w:color="000000"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPrEx><w:trPr><w:trHeight w:val="261" w:h-rule="atLeast"/><w:jc w:val="center"/></w:trPr><w:tc><w:tcPr><w:tcW w:w="709" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:adjustRightInd w:val="off"/><w:snapToGrid w:val="off"/><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr><#assign index = index + 1><w:t>${index}</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1276" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:widowControl/><w:jc w:val="center"/><w:textAlignment w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:kern w:val="0"/><w:sz-cs w:val="21"/><w:lang w:bidi="AR-SA"/></w:rPr><w:t>${col.name?if_exists}</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1276" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:widowControl/><w:jc w:val="center"/><w:textAlignment w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:kern w:val="0"/><w:sz-cs w:val="21"/><w:lang w:bidi="AR-SA"/></w:rPr><w:t>${col.age?if_exists}</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:w="1276" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/></w:tcPr><w:p><w:pPr><w:widowControl/><w:jc w:val="center"/><w:textAlignment w:val="center"/><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:b/><w:b-cs/><w:snapToGrid w:val="off"/><w:kern w:val="0"/><w:sz-cs w:val="21"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"w:fareast="仿宋_GB2312"w:hint="default"/><w:kern w:val="0"/><w:sz-cs w:val="21"/><w:lang w:bidi="AR-SA"/></w:rPr><w:t>${col.score?if_exists}</w:t></w:r></w:p></w:tc></w:tr></#if></#list></w:tbl><w:p><w:pPr><w:pStyle w:val="a2"/></w:pPr></w:p><w:sectPr><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992"w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:type="lines" w:line-pitch="312"/></w:sectPr></wx:sect></w:body></w:wordDocument>

关键模板代码说明:

判空:变量为空会报错

${col.score?if_exists}

合并列:

<#if  col?is_last> 判断如果是最后一行进行合并
w:gridSpan,合并几列由w:val确定
<w:tcPr><w:tcW w:w="709" w:type="dxa"/><w:shd w:val="clear" w:color="auto" w:fill="auto"/><w:noWrap w:val="0"/><w:vAlign w:val="center"/><#--合并两列--><w:gridSpan w:val="3"/>
</w:tcPr>

controller:

@Controller
public class FreemarkerController {@GetMapping("/word")public void wordFreemarker(HttpServletResponse response) {HashMap<String, Object> map = new HashMap<>();map.put("desc","这里是描述段落。。。");map.put("col","这里是动态列合并。。。");List<StudentInfo> list = getData();map.put("colList",list);FreeMakerUtil.generate("merge.ftl","word文件",map,response);System.out.println("success");}public List<StudentInfo> getData(){List<StudentInfo> list = new ArrayList<>();list.add(new StudentInfo("一班","李白","12",99));list.add(new StudentInfo("一班","阿珂","11",98));list.add(new StudentInfo("一班","剑圣","13",100));list.add(new StudentInfo("一班","药神","11",99));int sum = list.stream().mapToInt(StudentInfo::getScore).sum();list.add(new StudentInfo("","","",sum));return list;}
}

工具类

@Slf4j
public class FreeMakerUtil {public static void generate(String templateName, String fileName, Map<String,Object> dataMap, HttpServletResponse response) {//freeMarker配置实例Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);String templatePath = "/templates/";Writer out = null;try {//获取模版路径configuration.setClassForTemplateLoading(FreeMakerUtil.class, templatePath);//加载模版文件Template template = configuration.getTemplate(templateName);response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(fileName + ".doc", StandardCharsets.UTF_8.name()));//输出类型response.setContentType("application/msword");out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));template.process(dataMap, out);} catch (Exception ex) {log.error("生成word文件发生异常",ex);} finally {try {if (null != out) {out.flush();out.close();}} catch (Exception ex) {log.error("关闭文件流异常",ex);}}}
}

最后生成word文件效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/616668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Linux部署OpenGauss数据管理系统并实现固定公网地址访问

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…

Visual Studio中项目添加链接文件

这个需求在VS里面使用还真不多见&#xff0c;只是最近在做项目的版本编号的时候遇到一个头大的问题&#xff0c;我一个解决方案下面有几十个类库&#xff0c;再发布的时候这几十个类库的版本号必须要统一&#xff0c;之前我们都是在单个的AssemblyInfo.cs里面去改相关的信息&am…

flask框架基本使用

一、使用pycharm创建项目 1.创建项目 2.调整默认终端 3.打开虚拟终端 打开终端可以看出使用的是p1的虚拟机终端了 4.pyCharm小技巧 在flask种输入一个完整并且存在的函数名称或者类明&#xff0c; 然后 Alt 回车&#xff0c;pycharm可以自动导包&#xff0c;不用在手动在代…

Go并发快速入门:Goroutine

Go并发&#xff1a;Goroutine 1.并发基础概念&#xff1a;进程、线程、协程 (1) 进程 可以比作食材加工的一系列动作 进程就是程序在操作系统中的一次执行过程&#xff0c;是由系统进行资源分配和调度的基本单位&#xff0c;进程是一个动态概念&#xff0c;是程序在执行过程…

jmeter--3.使用提取器进行接口关联

目录 1. 正则表达式提取器 1.1 提取单个数据 1.2 名词解释 1.3 提取多个数据 2. 边界值提取器 2.2 名词解释 3. JSON提取器 3.1 Json语法 3.2 名词解释 3.3 如果有多组数据&#xff0c;同正则方式引用数据 1. 正则表达式提取器 示例数据&#xff1a;{"access_to…

C语言指针相关知识(初阶)

目录 指针是什么 指针变量的大小 指针和指针类型 指针类型的意义 野指针 指针运算 指针-整数 指针-指针 指针的关系运算 指针和数组 二级指针 二级指针定义 指针数组 指针数组的定义 指针是什么 如下图所示&#xff08;右侧编号为内存地址&#xff09;&#xff1…

C++多线程学习[二]:线程的传参以及传参的一些坑

一、线程的传参 #include<iostream> #include<thread> #include<string> using namespace std; void threadtest(int a,double b,string str) {this_thread::sleep_for(100ms);cout << a << " " << b << " " &…

Overleaf Docker编译复现计划

Overleaf Docker编译复现计划 Overleaf Pro可以支持不同年份的Latex镜像自由选择编译&#xff0c;这实在是一个让人看了心痒痒的功能。但是很抱歉&#xff0c;这属于Pro付费功能。但是我研究了一下&#xff0c;发现其实和Docker编译相关的代码&#xff0c;社区版的很多代码都没…

docker部署mongo过程

1、拉取MongoDB镜像&#xff0c;这里拉取最新版本。 docker pull mongo2、运行容器 docker run -d --name mongo -p 27017:27017 \ -e MONGO_INITDB_ROOT_USERNAMEadmin \ -e MONGO_INITDB_ROOT_PASSWORD123456 \ mongo:latest --auth#由于 mongodb 默认情况下&#xff0c;…

【Linux】编写第一个小程序:进度条

文章目录 1. 预备知识1.1 简单认识几个函数1.1.1 sleep()1.1.2 fflush()1.1.3 usleep()1.1.4 memset() 1.2 缓冲区1.3 回车与换行 2. 编写入门版的进度条2.1 基本逻辑2.2 美化效果2.3 代码实现2.4 执行效果 3. 编写升级版的进度条3.1 代码实现3.2 执行效果 1. 预备知识 1.1 简…

OpenHarmony—子系统开发之内核概述

内核简介 用户最常见到并与之交互的操作系统界面&#xff0c;其实只是操作系统最外面的一层。操作系统最重要的任务&#xff0c;包括管理硬件设备&#xff0c;分配系统资源等&#xff0c;我们称之为操作系统内在最重要的核心功能。而实现这些核心功能的操作系统模块&#xff0…

【小白专用】C#关于角色权限系统

&#xff08;C#&#xff09;用户、角色、权限 https://www.cnblogs.com/huangwen/articles/638050.html 权限管理系统——数据库的设计&#xff08;一&#xff09; https://www.cnblogs.com/cmsdn/p/3371576.html 权限管理系统——菜单模块的实现&#xff08;二&#xff09; …

Java LeetCode刷题 单调栈

单调栈 单调栈概念 每日温度 单调栈 概念 单调栈&#xff08;Monotonic Stack&#xff09;是一个特殊的数据结构&#xff0c;它是一种栈&#xff0c;但具有单调性的特性。单调栈有两种类型&#xff1a;单调递增栈和单调递减栈。 在单调递增栈中&#xff0c;栈内的元素保持递…

Linux 【C编程】IO进阶— 阻塞IO、非阻塞IO、 多路复用IO、 异步IO

文章目录 1.阻塞IO与非阻塞IO1.1为什么有阻塞式&#xff1f;1.2非阻塞 2.阻塞式IO的困境3.并发IO的解决方案3.1非阻塞式IO3.2多路复用IO3.2.1什么是多路复用IO&#xff1f;3.2.1多路复用IO select原理3.2.1多路复用IO poll原理 3.3异步IO 1.阻塞IO与非阻塞IO 1.1为什么有阻塞式…

【教3妹学编程-算法题】统计出现过一次的公共字符串

3妹&#xff1a;哈哈哈哈哈哈&#xff0c;太搞笑了~ 呵呵呵呵呵呵 2哥&#xff1a;3妹干嘛呢&#xff0c; 笑的这么魔性&#xff01; 3妹&#xff1a;在看王牌对王牌&#xff0c;老搞笑了 2哥&#xff1a;这季好像没有贾玲吧。 3妹&#xff1a;是啊&#xff0c;听说贾玲去导电影…

Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式)

文章目录 前要&#xff1a;前端路由的概念与原理1&#xff09;什么是路由2&#xff09;SPA与前端路由3&#xff09;什么是前端路由4&#xff09;前端路由的工作方式 一、Vue-router简单使用1&#xff09;什么是vue-router2) vue-router 安装和配置的步骤① 安装 vue-router 包②…

React Native 桥接组件封装原生组件属性

自定义属性可以让组件具备更多的灵活性&#xff0c;所以有必要在JS 层通过自定义属性动态传值。 一、添加原生组件属性 因为 ViewManager 管理了整个组件的行为&#xff0c;所以要新增组件属性也需要在这里面&#xff08;如 InfoViewManager&#xff09;进行定义。 1、在Inf…

从DETR到Mask2Former(1):DETR-segmentation结构全解析

网上关于DETR做的detection的解析很多&#xff0c;但是DETR做Segmentation的几乎没有&#xff0c;本文结合DETR的论文与代码&#xff0c;对DETR做一个详细的拆解。理解DETR是理解Mask2Former的基础。 首先得把DETR-segmentation给run起来。Github上DETR的repository&#xff0…

【python入门】day26:统计字符串中出现指定字符的次数

案例 实际上if name“main”:就相当于是 Python 模拟的程序入口 。由于模块之间相互引用&#xff0c;不同模块可能都有这样的定义&#xff0c;而入口程序只能有一个&#xff0c;选中哪个入口程序取决于 ** ** name** **的值。 代码 #-*- coding:utf-8 -*- #开发时间&#xff…

SQL-分页查询and语句执行顺序

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…