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,一经查实,立即删除!

相关文章

7-6 jmu-Java-02基本语法-04-动态数组 --笔记篇

题目 根据输入的n&#xff0c;打印n行乘法口诀表。 需要使用二维字符串数组存储乘法口诀表的每一项&#xff0c;比如存放1*11. 为了保证程序中使用了二维数组&#xff0c;需在打印完乘法口诀表后使用Arrays.deepToString打印二维数组中的内容。 提醒&#xff1a;格式化输出可…

如何在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 << " " &…

vue3+ts项目开启 devtools 时,页面卡顿

项目场景&#xff1a; 项目&#xff1a;Vue3tsantdesginvue/elementPlus 问题描述 vue3ts项目开启 devtools 时&#xff0c;页面卡顿 原因分析&#xff1a; TS类型在页面加载渲染时导出过多&#xff0c;导致 devtools 在进行性能分析的时候&#xff0c;耗费了太多资源。 所以…

九、static关键字

static关键字 九、static关键字1. 概述2. 静态变量3. 静态块4. 静态方法5. 静态内部类6. 静态导入7. 静态特性8. 小结9. 注意事项 九、static关键字 1. 概述 static是一个关键字&#xff0c;用于定义类、方法、变量和代码块的静态特性。它可以在不同的上下文中使用&#xff0…

Tampermonkey油猴插件-各大网盘批量分享,解放双手-下

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列

NetApp AFF C 系列全闪存存储的主要优势和软件特性

NetApp AFF C 系列全闪存存储 采用全新的闪存技术&#xff0c;同时辅以智能科技加持&#xff0c;将为您带来一个更为经济实惠的全闪存解决方案&#xff0c;它重新定义了安全性、可扩展性和可持续性。 为什么选择 AFF C 系列的新一代全闪存解决方案&#xff1f; 实现现代化&am…

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;…

如何控制docker服务的日志输出?

引言 通过docker部署的线上服务&#xff0c;由于宿主机存储空间有限&#xff0c;加上长时间累积的客观条件下&#xff0c;会出现docker服务的控制台日志过大。再三思量后决定不输出控制台日志&#xff0c;从而从根源解决此问题。 在Docker Compose中&#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;栈内的元素保持递…

安全防御之密码技术

密码学是信息安全的基础技术之一&#xff0c;是达到信息系统安全等级保护要求的核心技术支持&#xff0c;在身份验证、访问控制、文件加密、数据加密和安全传输中都得到广泛应用。其核心目标是保证信息的机密性、完整性和可用性。 密码学包括加密和解密两个部分。一般过程是&am…