当前位置: 首页 > news >正文

【插件】前端生成word 文件

文章目录

    • 1、背景
    • 2、方式一:html-docx-js
      • 2.1 具体代码
      • 2.2 前端生成word文件的样式
      • 2.3 总结
    • 3、方式二:pizzip + docxtemplater
      • 3.1 具体代码
      • 3.2 前端生成word文件的样式
      • 3.3 总结
    • 4、参考链接

1、背景

在实际开发中,业务需要,需要把数据进行组合生成一个 word 文件

2、方式一:html-docx-js

在这里插入图片描述

注意,这个插件 最近的更新日期 八年之前了

2.1 具体代码

核心逻辑

  1. 画出 Word 文件内容样子
  2. 把 word文件内容样子的DOM 。传入 html-docx-jsasBlob 方法
  3. 处理 blob 格式的数据,配合 a 标签,直接在界面弹出文件

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>HTML to Word</title><script src="https://cdn.jsdelivr.net/npm/html-docx-js@0.3.1/dist/html-docx.min.js"></script><style>.abc {display: grid;grid-template-columns: repeat(3, 1fr);font-weight: bold;}.title {font-weight: bold;text-align: center;vertical-align: middle;}.textCenter {text-align: center;}tr,td {font-size: 12px;}* {margin: 0;padding: 0;}</style>
</head><body><div id="content"><div style="font-size: 48px; font-weight: bold; text-align: center">质量反馈单</div><div>反馈单单号: WLYD202412250049</div><table style="width: 100%;" border="1" cellspacing="0" cellpadding="0" class="textCenter"><tr><td class="title">质量问题主题</th><td colspan="3" class="textCenter">你还是是大家看会玩空间的哈授课计划的卡号夸奖哈首府卡迪夫好看就好的夸奖哈库文件很大看见你是法务会计贺卡就是饭卡文化按时付款计划啊空间未婚夫你还是是大家看玩空间的哈授课计划的卡号夸奖哈首府卡迪夫好看就好的夸奖哈库文件很大看见你是法务会计贺卡就是饭卡文化按时付款计划啊空间未婚夫你还是是大家看会玩空间的哈授课计划的卡号夸奖哈首府卡迪夫好看就好的夸奖哈库文件很大看见你是法务会计贺卡就是饭卡文化按时付款计划啊空间未婚夫</td></tr><tr><td style="width: 15%;" class="title">反馈日期</td><td style="width: 35%;">2024-11-23</td><td style="width: 15%;" class="title">质量问题等级</td><td style="width: 35%;">严重</td></tr><tr><td class="title">电站名称</td><td>北京市超级充电站</td><td class="title">电站运营时间</td><td>2024-11-23</td></tr><tr><td class="title">项目类型</td><td>头肩</td><td class="title">反馈公司</td><td>特来电新能源</td></tr><tr><td class="title">反馈人</td><td>呆呆狗</td><td class="title">反馈人电话</td><td>18856491536</td></tr><tr><td class="title">父级设备</td><td>箱变</td><td class="title">设备生产日期</td><td>2024-11-23</td></tr><tr><td class="title">子型号</td><td>子星号</td><td class="title">故障设备</td><td>故障设备</td></tr></table><!-- 现场问题描述 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="2" style="width: 15%;" class="title">现场问题描述</td><td style="width: 85%;height: 100px;vertical-align:top">edddd</td></tr><tr style="height: 40px;"><td>填写人: 呆呆狗</td></tr></table><!-- 纠正 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="7" style="width: 15%;text-align: center;" class="title">纠正</td><td colspan="2" style="width: 17%;text-align: center;" class="title">分类</td><td class="title" style="width: 10%;">数量</td><td class="title">措施</td><td class="title" style="width: 15%;">日期</td></tr><tr><td style="text-align: center;" colspan="2">现场故障设备</td><td class="textCenter">12345.00</td><td>3</td><td class="textCenter">2024-01-01</td></tr><tr><td rowspan="3" style="text-align: center;">在库</td><td style="text-align: center;">供应商在库</td><td class="textCenter">3</td><td>4</td><td class="textCenter">2024-01-01</td></tr><tr><td style="text-align: center;">XXX在库</td><td class="textCenter">3</td><td>4</td><td class="textCenter">2024-01-01</td></tr><tr><td style="text-align: center;">区域仓在库</td><td class="textCenter">3</td><td>4</td><td class="textCenter">2024-01-01</td></tr><tr><td style="text-align: center;" colspan="2">在市</td><td class="textCenter">2</td><td>3</td><td class="textCenter">2024-01-01</td></tr><tr><td style="text-align: center;" colspan="2">其他</td><td class="textCenter">2</td><td>3</td><td class="textCenter">2024-01-01</td></tr></table><!-- 具体原因分析 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="3" style="width: 15%;" class="title">原因分析</td><td style="width: 10%;" class="title">发生原因</td><td>2</td></tr><tr><td style="width: 10%;" class="title">流出原因</td><td>2</td></tr><tr><td style="width: 10%;" class="title">其他</td><td>2</td></tr></table><!-- 纠正措施 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="4" style="width: 15%;" class="title">纠正措施</td><td style="width: 10%;" class="title"></td><td class="title">措施</td><td style="width: 15%;" class="textCenter title">日期</td></tr><tr><td style="width: 10%;" class="title">发生</td><td>2</td><td style="width: 15%;" class="textCenter">2024-11-23</td></tr><tr><td style="width: 10%;" class="title">流出</td><td>2</td><td style="width: 15%;" class="textCenter">2024-11-23</td></tr><tr><td style="width: 10%;" class="title">举一反三</td><td>2</td><td style="width: 15%;" class="textCenter">2024-11-23</td></tr></table><!-- 标准化 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="3" style="width: 15%;" class="title">标准化</td><td class="title">文件名称</td><td style="width: 10%;" class="title">文件类型</td><td style="width: 15%;" class="title">日期</td></tr><tr><td>流出</td><td style="width: 10%;" class="textCenter">新增</td><td style="width: 15%;" class="textCenter">2024-11-23</td></tr><tr><td>举一反三</td><td style="width: 10%;" class="textCenter">修改</td><td style="width: 15%;" class="textCenter">2024-11-23</td></tr></table><!-- 责任部门 和 责任部门领导审批 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td style="width: 15%;" class="title">责任部门</td><td class="textCenter">总裁办</td><td style="width: 10%;" class="title">负责人</td><td style="width: 15%;" class="textCenter">呆呆狗</td><td style="width: 10%;" class="title">日期</td><td style="width: 15%;" class="textCenter">2024-01-01</td></tr><tr><td style="width: 15%;" class="title">责任部门领导审批</td><td colspan="3" class="textCenter">总裁办</td><td style="width: 10%;" class="title">日期</td><td style="width: 15%;" class="textCenter">2024-01-01</td></tr></table><!-- 跟踪验证结果 --><table style="width: 100%;margin-top: -2px;" border="1" cellspacing="0" cellpadding="0"><tr><td rowspan="3" style="width: 15%;" class="title">跟踪验证确认</td><td style="width: 85%;height: 100px;vertical-align:top">缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结缺陷反酷点总结</td></tr><tr style="height: 40px;"><td>验证结果: 关闭 无效</td></tr><tr style="height: 40px;"><td>负责人: 呆呆狗 日期:2024-12-30 </td></tr><tr><td style="width: 15%;font-family: '宋体';font-size: 12pt;" class="title">备注</td><td style="font-family: '宋体';font-size: 12pt"></td></tr></table></div><button id="downloadButton">Download as Word</button><script>document.getElementById("downloadButton").onclick = function () {var content = document.getElementById("content").outerHTML;var fullHtml = `<!DOCTYPE html><html><head><meta charset="UTF-8"><style>* {margin: 0;padding: 0;}.title { font-weight: bold;text-align: center; vertical-align: middle;}tr,td {font-size: 14px;}.textCenter {text-align: center;}</style></head><body>${content}</body></html>`;var converted = htmlDocx.asBlob(fullHtml);var link = document.createElement("a");link.href = URL.createObjectURL(converted);link.download = "document.docx";link.click();};</script>
</body></html>

其实主要核心代码就是下面这几行

    var converted = htmlDocx.asBlob(fullHtml);var link = document.createElement("a");link.href = URL.createObjectURL(converted);link.download = "document.docx";link.click();

html-docx-jsasBlob 方法,传入前端的DOM ,然后,用 URL.createObjectURL 创建一个blob 格式的链接,配合 a标签 就可以了

2.2 前端生成word文件的样式

在这里插入图片描述
在这里插入图片描述

2.3 总结

优点

  1. 代码简单,上手速度快
  2. 不需要依赖于 后端,前端可以独自处理

缺点

  1. 支持的 html、css 比较简单,比如 flex、grid 不支持
  2. 这个库已经很久不维护
  3. 图片需要转成 base64 才能放进去
  4. word的 行高字体字号 支持性较差

如果对于 word 文件的样子要求不是很高,可以使用这个 方法,开发过程也相对比较简单

3、方式二:pizzip + docxtemplater

3.1 具体代码

在这里插入图片描述
核心思路

  1. 读取预先设置好的 word 文件
  2. 解析word ,解析成二进制
  3. 创建docxtemplater实例
  4. 填充word 里面的数据
  5. 渲染word
  6. 获取渲染后word的 blob 地址
  7. 下载 word

前提需要准备一个这样的word 文件 ,下面的代码是演示 插入循环 table,具体的文件在文章最顶部可以下载

这个word 里面的 语法可以参考这个链接 docxtemplater 语法演示

{Code} 在前端设置数据的时候,按照这个名字 和 要设置的值,组成 keyvalue 格式即可

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Docxtemplater Example</title><script src="https://cdn.jsdelivr.net/npm/pizzip@3.0.1/dist/pizzip.min.js"></script><script src="https://cdn.jsdelivr.net/npm/docxtemplater@3.29.0/build/docxtemplater.js"></script><script src="https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js"></script><scriptsrc="https://unpkg.com/docxtemplater-image-module-free@3.0.0/dist/docxtemplater-image-module-free.js"></script>
</head><body><h1>Generate Word Document</h1><button id="generate">Download Word</button><script>document.getElementById('generate').addEventListener('click', function () {// 1、读取word 文件fetch('./template.docx').then(response => response.arrayBuffer()).then(arrayBuffer => {console.log('第一步', arrayBuffer);// 2、解析wordconst zip = new PizZip(arrayBuffer);// 3、创建docxtemplater实例const doc = new window.docxtemplater(zip, {paragraphLoop: true,linebreaks: true,});// 4、设置数据doc.setData({Code: "ZLFX202412280001",name: "你好啊啊John Doe阿斯顿我是具体措施111你是你好啊啊John Doe阿斯顿我是具体措施111你是你好啊啊John Doe阿斯顿我是具体措施111你是你好啊啊John Doe阿斯顿我是具体措施111你是",arr: [{ name: "第一行", type: "新增", time: "2024-12-23" },{ name: "第二行", type: "修改", time: "2024-12-23" },{ name: "第三行", type: "新增", time: "2024-12-23" },{ name: "第四行", type: "新增", time: "2024-12-23" },{ name: "第五行", type: "新增", time: "2024-12-23" },{ name: "第六行", type: "新增", time: "2024-12-23" },{ name: "第七行", type: "删除", time: "2099-12-23" },],});try {// 5、渲染worddoc.render();} catch (error) {console.error('Error rendering the document:', error);return;}// 6、获取渲染后的wordconst output = doc.getZip().generate({ type: 'blob' });// 7、下载wordsaveAs(output, 'output.docx');}).catch(error => console.error('Error loading template:', error));});</script>
</body></html>

3.2 前端生成word文件的样式

生成后的文件样式如下。 图片插入这个地方 官方说是可以,其他的文章也有实现的,但这个地方我没实现。 据说是要用docxtemplater-image-module 这个库

在这里插入图片描述

3.3 总结

优点

  1. 样式可控制

缺点
2. 需要预先设置 word 文件的样式

4、参考链接

  • docxtemplater 语法官方文档
  • html-docx-js GitHub地址

相关文章:

【插件】前端生成word 文件

文章目录 1、背景2、方式一&#xff1a;html-docx-js2.1 具体代码2.2 前端生成word文件的样式2.3 总结 3、方式二&#xff1a;pizzip docxtemplater3.1 具体代码3.2 前端生成word文件的样式3.3 总结 4、参考链接 1、背景 在实际开发中&#xff0c;业务需要&#xff0c;需要把数…...

软件测试用例设计方法之正交表

一、概念 能够使用最小的测试过程集合获得最大的测试覆盖率&#xff0c;从全面试验中挑选出有代表性的点进行测试。适用于配置类软件&#xff0c;组合比较多的情况。 正交表Ln(m^k)&#xff1a; 特点&#xff1a;均匀分散、整齐可比、高效、快速、经济 n&#xff1a;正交表的…...

数组和对象深浅拷贝

对象浅拷贝 方法一&#xff1a;使用 Object.assign() Object.assign() 方法用于将一个或多个源对象的所有可枚举属性复制到目标对象。它会返回目标对象。 const originalObj {name: John,age: 30,hobbies: [reading, running] };const shallowCopy Object.assign({}, orig…...

NPM环境搭建指南

NPM&#xff08;Node Package Manager&#xff09;是 Node.js 的包管理工具&#xff0c;堪称前端开发的基石。本文将手把手教你 在Mac、Windows、Linux三大系统上快速搭建NPM环境&#xff0c;并验证是否成功。 一、Mac系统安装NPM 方法1&#xff1a;通过Homebrew安装&#xff…...

C#功能测试

List 内部元素为引用 src[0]为"11" List<Source> src new List<Source>(); src.Add(new Source() { Name "1", Age 1, Description "1" }); src.Add(new Source() { Name "2", Age 2, Description "2"…...

Mongoose 详解

为 Node.js 与 MongoDB 之间提供了一个更高级、更便捷的交互方式。 一、安装 # 使用 npm 安装npm install mongoose 二、基本使用 1. 连接数据库 const mongoose require("mongoose");// 数据库连接 URIconst uri "mongodb://localhost:27017/myDatabase…...

《95015网络安全应急响应分析报告(2024)》

2025年2月&#xff0c;95015服务平台发布了最新一期的《95015网络安全应急响应分析报告&#xff08;2024&#xff09;》。报告分别从整体形势、受害者特征、攻击者特征等方面&#xff0c;对2024年95015平台接报的739起网络安全应急响应事件展开分析&#xff0c;并给出了7个年度…...

鸿蒙开发:V2版本装饰器之@Monitor装饰器

前言 本文代码案例基于Api13。 随着官方的迭代&#xff0c;在新的Api中&#xff0c;对于新的应用开发&#xff0c;官方已经建议直接使用V2所属的装饰器进行开发了&#xff0c;所以&#xff0c;能上手V2的尽量上手V2吧&#xff0c;毕竟&#xff0c;V2是V1的增强版本&#xff0c;…...

【雅思博客04】Silence please!

A: Those people in front of us are making so much noise. It’s so inconsiderate! B: Don’t worry about it; it’s not such a big deal. A: Oh... I can’t hear a thing! Excuse me, can you keep it down? C: Sure, sorry about that! A: Someone’s phone is ri…...

【DeepSeek系列】04 DeepSeek-R1:带有冷启动的强化学习

文章目录 1、简介2、主要改进点3、两个重要观点4、四阶段后训练详细步骤4.1 冷启动4.2 推理导向的强化学习4.3 拒绝采样和有监督微调4.4 针对所有场景的强化学习 5、蒸馏与强化学习对比6、评估6.1 DeepSeek-R1 评估6.2 蒸馏模型评估 7、结论8、局限性与未来方向 1、简介 DeepS…...

深入理解 Spring Bean 生命周期的执行流程

在 Java 开发领域&#xff0c;Spring 框架无疑是一颗璀璨的明星&#xff0c;它极大地简化了企业级应用的开发过程。而 Spring Bean 的生命周期&#xff0c;作为 Spring 框架的核心概念之一&#xff0c;对于理解 Spring 框架的运行机制和进行高效开发至关重要。本文将详细剖析 S…...

毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现

&#x1f393; 毕业设计大揭秘&#xff01;想要源码和文章&#xff1f;快来私信我吧&#xff01; Hey小伙伴们~ &#x1f44b; 毕业季又来啦&#xff01;是不是都在为毕业设计忙得团团转呢&#xff1f;&#x1f914; 别担心&#xff0c;我这里有个小小的福利要分享给你们哦&…...

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计

一、项目背景 在某工业生产园区的供水系统中&#xff0c;为了精确监测和控制各个生产环节的用水流量&#xff0c;需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输&#xff0c;但园区的监控系统基于 Modbus TCP 协议进行数据交互&…...

深入解析 iOS 视频录制(三):完整录制流程的实现与整合

深入解析 iOS 视频录制&#xff08;一&#xff09;&#xff1a;录制管理核心MWRecordingController 类的设计与实现 深入解析iOS视频录制&#xff08;二&#xff09;&#xff1a;自定义UI的实现​​​​​​​ 深入解析 iOS 视频录制&#xff08;三&#xff09;&#xff1a;完…...

Python基于Flask的豆瓣Top250电影数据可视化分析与评分预测系统(附源码,技术说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

AStar低代码平台RpcServiceBase的应用:客户端事务管理

由于AStar平台是基于RPC协议与AStar后端服务进行通讯&#xff0c;而又非常接近常规BS的编码方式&#xff0c;直接写SQL即可对数据库进行操作&#xff0c;那么如果有若干个访问需要在同一事务中进行的&#xff0c;如何处理&#xff1f;比如先生成临时表&#xff0c;再对临时表进…...

Postman如何流畅使用DeepSeek

上次写了一篇文章是用chatBox调用api的方式使用DeepSeek&#xff0c;但是实际只能请求少数几次就不再能给回响应。这回我干脆用最原生的方法Postman调用接口请求好了。 1. 通过下载安装Postman软件 postman下载(https://pan.quark.cn/s/c8d1c7d526f3)&#xff0c;包含7.0和10…...

RocketMQ - 常见问题

RocketMQ常见问题 文章目录 RocketMQ常见问题一&#xff1a;消息幂等问题1&#xff1a;什么是消费幂等2&#xff1a;消息重复的场景分析2.1&#xff1a;发送时消息重复2.2&#xff1a;消费时消息重复2.3&#xff1a;Rebalance时消息重复 3&#xff1a;通用解决方案3.1&#xff…...

YOLOv12推理详解及部署实现

目录 前言一、YOLOv12推理(Python)1. YOLOv12预测2. YOLOv12预处理3. YOLOv12后处理4. YOLOv12推理 二、YOLOv12推理(C)1. ONNX导出2. YOLOv12预处理3. YOLOv12后处理4. YOLOv12推理 三、YOLOv12部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX导出…...

docker 安装的open-webui链接ollama出现网络错误

# 故事背景 部署完ollama以后&#xff0c;使用谷歌浏览器的插件Page Assist - 本地 AI 模型的 Web UI 可以比较流畅的使用DeepSeek&#xff0c;但是只局限于个人使用&#xff0c;想分享给更多的小伙伴使用&#xff0c;于是打算使用open-webui 来管理用户&#xff0c;经官网推荐…...

【大模型】DeepSeek 的人工智能发展之路

【大模型】DeepSeek 的人工智能发展之路 初出茅庐&#xff1a;成立与奠基&#xff08;2023 年&#xff09;崭露头角&#xff1a;大模型的初步发布&#xff08;2024 年&#xff09;首个大模型 DeepSeek LLM 发布&#xff08;2024 年 1 月 5 日&#xff09;开源第二代 MoE 大模型…...

关于Unity的一些基础知识点汇总

1.Prefab实例化后&#xff0c;哪些资源是共用的&#xff1f;哪些资源是拷贝的&#xff1f; 共用资源 脚本组件&#xff1a;实例化后的 Prefab 共享脚本组件的代码。若脚本中无状态数据&#xff0c;多个实例对脚本方法的调用会有相同逻辑。比如一个控制物体移动的脚本&#xff0…...

Java 大视界 -- 企业数字化转型中的 Java 大数据战略与实践(93)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

Compose常用UI组件

Compose常用UI组件 概述Modifier 修饰符常用Modifier修饰符作用域限定Modifier Modifier 实现原理Modifier.Element链的构建链的解析 常用基础组件文字组件图片组件按钮组件选择器对话框进度条 常用布局组件线性布局帧布局 列表组件 概述 Compose 预置了很多基础组件&#xff…...

【EndNote】WPS 导入EndNote 21

写在前面&#xff1a;有没有人有激活码&#xff0c;跪求&#xff01; EndNote&#xff0c;在文献管理和文献引用方面很好用。写文章的时候&#xff0c;使用EndNote引入需要的文献会很方便。我目前用的WPS&#xff0c;想把EndNote的CWYW&#xff08;Cite While You Write&#…...

【Spring详解三】默认标签的解析

三、默认标签的解析 Spring的标签中有 默认标签和 自定义标签&#xff0c;两者的解析有着很大的不同&#xff0c;这次重点说默认标签的解析过程。 DefaultBeanDefinitionDocumentReader.class 默认标签的解析是在 DefaultBeanDefinitionDocumentReader.parseDefaultElement()函…...

leetcode 2585. 获得分数的方法数

题目如下 数据范围 莫要被困难的外衣骗了&#xff0c;本题就是有数量限制的完全背包问题。显然我们可以令 f(x,y)为当有x种题目时分数为y时的方法数 令某种题目的数量为k 那么方法数应该是 f(x,y) f(x - 1,y - k * (分值))其中(0 < k < 题目数量)通过代码 class So…...

Java Spring boot 篇:常用注解

Configuration 作用 Configuration 注解的核心作用是把一个类标记为 Spring 应用上下文里的配置类。配置类就像一个 Java 版的 XML 配置文件&#xff0c;能够在其中定义 Bean 定义和 Bean 之间的依赖关系。当 Spring 容器启动时&#xff0c;会扫描这些配置类&#xff0c;解析其…...

检索增强生成(RAG)技术应用方案设计

检索增强生成&#xff08;RAG&#xff09;技术应用方案设计 目录 引言背景分析核心技术原理应用领域与案例分析设计方案 5.1 设计目标5.2 技术路线5.3 实施步骤 风险评估与应对措施预期效果与长远展望总结 1. 引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&…...

【JavaEE进阶】数据库连接池

目录 &#x1f334;数据库连接池 &#x1f38b;数据库连接池的使用 &#x1f332;MySQL企业开发规范 &#x1f334;数据库连接池 数据库连接池负责分配、管理和释放数据库连接&#xff0c;它允许应⽤程序重复使⽤⼀个现有的数据库连接&#xff0c;⽽不是再重新建⽴⼀个. 没…...

意图识别概述

在当今的人工智能领域&#xff0c;意图识别技术是自然语言处理&#xff08;NLP&#xff09;中的一个重要分支&#xff0c;它使得机器能够理解人类语言背后的目的或意图。对于鸿蒙操作系统而言&#xff0c;掌握意图识别技术可以极大地提升用户体验&#xff0c;使设备能更好地响应…...

istio实现灰度发布,A/B发布, Kiali网格可视化(二)

代码发布是软件开发生命周期中的一个重要环节&#xff0c;确保新功能和修复能够顺利上线。以下是几种常见的代码发布流程。在学习灰度发布之前。我们首先回忆下代码发布常用的几种方法。 A/B&#xff08;蓝绿&#xff09;发布&#xff1a; 蓝绿部署是一种通过维护两套独立的环…...

python-leetcode 36.二叉树的最大深度

题目&#xff1a; 给定一个二叉树root,返回其最大深度 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数 方法一&#xff1a;深度优先搜索 知道了左子树和右子树的最大深度l和r&#xff0c;那么该二叉树的最大深度即为:max(l,r)1 而左子树和右子树的最大深…...

在 Ubuntu 22.04 中修改主机名称(hostname)

在 Ubuntu 22.04 中修改主机名称&#xff08;hostname&#xff09;可以通过以下两种方法实现&#xff0c;一种是临时修改&#xff08;重启后失效&#xff09;&#xff0c;另一种是永久修改。以下是详细步骤&#xff1a; 方法 1&#xff1a;使用 hostnamectl 永久修改 查看当前主…...

解锁机器学习核心算法 | 随机森林算法:机器学习的超强武器

一、引言 在机器学习的广阔领域中&#xff0c;算法的选择犹如为一场冒险挑选趁手的武器&#xff0c;至关重要。面对海量的数据和复杂的任务&#xff0c;合适的算法能够化繁为简&#xff0c;精准地挖掘出数据背后隐藏的模式与价值。机器学习领域有十大核心算法&#xff0c;而随…...

JAVA学习第五天

接口的变量定义固定为静态变量 接口里面只能有抽象方法&#xff0c;且不能有构造方法 如果不重写tostring方法&#xff0c;会打印没有价值的信息...

【CUDA 】第4章 全局内存——4.4 核函数可达到的带宽(4对角转置)

CUDA C编程笔记 第四章 全局内存4.4 核函数可达到的带宽4.4.2.4 对角转置【让DRAM访问更均匀&#xff0c;提高性能】 待解决的问题&#xff1a; 第四章 全局内存 4.4 核函数可达到的带宽 4.4.2.4 对角转置【让DRAM访问更均匀&#xff0c;提高性能】 前置条件场景&#xff1…...

深入理解 lua_KFunction 和 lua_CFunction

在 Lua C API 中,lua_KFunction 和 lua_CFunction 是两个核心概念,尤其在处理协程和 C 函数扩展时扮演着至关重要的角色。lua_CFunction 作为一种 C 函数类型,允许开发者将 C 函数注册到 Lua 环境中,使得这些 C 函数可以在 Lua 脚本中被调用,进而实现 Lua 的功能扩展。而 …...

Nacos Derby 远程命令执行漏洞修复建议

由于Nacos < 2.4.0 BETA 存在 Derby 远程命令执行漏洞&#xff0c;恶意攻击者利用此漏洞可以未授权执行SQL语句&#xff0c;最终导致任意代码执行。目前该漏洞PoC和技术细节已在互联网上公开。 一、漏洞情况分析 Nacos 是一个功能强大的服务注册与发现、配置管理平台&#…...

MySQL(1)基础篇

执行一条 select 语句&#xff0c;期间发生了什么&#xff1f; | 小林coding 目录 1、连接MySQL服务器 2、查询缓存 3、解析SQL语句 4、执行SQL语句 5、MySQL一行记录的存储结构 Server 层负责建立连接、分析和执行 SQL存储引擎层负责数据的存储和提取。支持InnoDB、MyIS…...

java每日精进 2.13 MySql迁移人大金仓

1.迁移数据库 1. 数据库创建语句 MySQL&#xff1a; CREATE DATABASE dbname; 人大金仓&#xff08;Kingbase&#xff09;&#xff1a; 在人大金仓中&#xff0c;CREATE DATABASE 的语法通常相同&#xff0c;但可能需要特别注意字符集的指定&#xff08;如果涉及到多语言支持…...

Java开发实习面试笔试题(含答案)

在广州一家中大公司面试&#xff08;BOSS标注是1000-9999人&#xff0c;薪资2-3k&#xff09;&#xff0c;招聘上写着Java开发&#xff0c;基本没有标注前端要求&#xff0c;但是到场知道是前后端分离人不分离。开始先让你做笔试&#xff08;12道问答4道SQL题&#xff09;&…...

C语言流程控制学习笔记

1. 顺序结构 顺序结构是程序中最基本的控制结构&#xff0c;代码按从上到下的顺序依次执行。大多数C语言程序都是由顺序结构组成的。 2. 选择结构 选择结构根据条件的真假来决定执行哪一段代码。在C语言中&#xff0c;选择结构主要有以下几种&#xff1a; 2.1 if 语句 if语…...

解析DrugBank数据库数据|Python

一、DrugBank 数据库简介 DrugBank 是一个综合性的生物信息学和化学信息学数据库&#xff0c;专门收录药物和靶点的详细信息。它由加拿大阿尔伯塔大学的 Wishart 研究组 维护&#xff0c;提供化学、药理学、相互作用、代谢、靶点等多方面的药物数据。DrugBank 结合了实验数据和…...

排序算法:冒泡排序

冒泡排序标准代码&#xff08;C语言&#xff09; c复制代码 #include <stdio.h>// 冒泡排序函数 void bubbleSort(int arr[], int n) {// 外层循环&#xff1a;控制排序轮数for (int i 0; i < n - 1; i) {// 内层循环&#xff1a;控制每轮比较次数for (int j 0; j…...

网络爬虫学习:借助DeepSeek完善爬虫软件,实现模拟鼠标右键点击,将链接另存为本地文件

一、前言 最近几个月里&#xff0c;我一直在学习网络爬虫方面的知识&#xff0c;每有收获都会将所得整理成文发布&#xff0c;不知不觉已经发了7篇日志了&#xff1a; 网络爬虫学习&#xff1a;从百度搜索结果抓取标题、链接、内容&#xff0c;并保存到xlsx文件中 网络爬虫学…...

[原创](Modern C++)现代C++的关键性概念: 妙用std::reference_wrapper, 让std::list容器具有随机访问功能.

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…...

智享AI直播三代系统,马斯克旗下AI人工智能直播工具,媲美DeepSeek!

智享AI直播三代系统&#xff0c;马斯克旗下AI人工智能直播工具,媲美DeepSeek&#xff01; 在科技飞速发展的当下&#xff0c;人工智能正以前所未有的态势重塑着各个行业的格局。直播领域&#xff0c;作为信息传播与商业交互的前沿阵地&#xff0c;也在AI技术的赋能下迎来了颠覆…...

2.19学习记录

Web easyupload3.0 这是一道构造.htaccess文件的传马 如下&#xff1a; <FilesMatch "jpg">SetHandler application/x-httpd-php </FilesMatch>.htaccess文件可以作为一个解释器&#xff0c;可以将传进去的图片马改为php马上传之后再传个图片马&#…...

RT-Thread+STM32L475VET6实现呼吸灯

文章目录 前言一、板载资源资源说明二、具体步骤1.新建rt_thread项目2. 打开PWM设备驱动3. 在Stm32CubeMX配置定时器3.1打开Stm32CubeMX3.2 使用外部高速时钟&#xff0c;并修改时钟树3.3打开定时器1&#xff0c;并配置通道一为PWM输出模式(定时器根据自己需求调整)3.4 打开串口…...