前端插件使用xlsx-populate,花样配置excel内容,根据坐添加标替换excel内容,修改颜色,合并单元格...。
需求要求:业务人员有个非常复杂得excel表格,各种表头等,但是模板是固定得。当然也可以实现在excel上搞出各种表格,但是不如直接用已有模板替换其中要动态得内容方便,这里我们用到CSDN得 xlsx-populate 插件。
实列中我们使用node做一个服务
一、首先创建一个空白文件夹 my-xlsx-populate
1、创建index.html文件
这里得html主要用来点击操作作用
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Excel 文件处理</title><style>body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f4f4f9;}button {padding: 10px 20px;background-color: #007BFF;color: #fff;border: none;border-radius: 4px;cursor: pointer;}button:hover {background-color: #0056b3;}</style>
</head><body><button id="processButton">处理文件</button><script>const processButton = document.getElementById('processButton');processButton.addEventListener('click', async () => {try {const response = await fetch('/process', {method: 'POST',headers: {'Content-Type': 'application/json'}});if (response.ok) {const blob = await response.blob();const url = window.URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = '修改后.xlsx';a.click();window.URL.revokeObjectURL(url);} else {const errorText = await response.text();alert(`处理文件时出错: ${errorText}`);}} catch (error) {alert(`网络请求出错: ${error.message}`);}});</script>
</body></html>
1、创建server.js文件
const express = require('express');
const XlsxPopulate = require('xlsx-populate');
const path = require('path');
const fs = require('fs');const app = express();// 检查 uploads 目录是否存在,不存在则创建
const uploadDir = path.join(__dirname, 'uploads');
if (!fs.existsSync(uploadDir)) {fs.mkdirSync(uploadDir);
}// 处理静态文件,使得前端页面可以被访问
app.use(express.static(__dirname));// 处理文件处理请求
app.post('/process', async (req, res) => {try {// 获取 uploads 目录下的所有文件const files = fs.readdirSync(uploadDir);if (files.length === 0) {console.error('uploads 目录中没有文件');return res.status(400).send('uploads 目录中没有文件');}// 选择第一个文件进行处理const selectedFile = path.join(uploadDir, files[0]);console.log('选定文件:', selectedFile);// 检查文件扩展名const fileExtension = path.extname(selectedFile).toLowerCase();if (fileExtension !== '.xlsx') {console.error('文件扩展名不正确:', fileExtension);return res.status(400).send('仅支持 .xlsx 文件');}try {// 检查文件是否可读fs.accessSync(selectedFile, fs.constants.R_OK);// 读取 Excel 文件const workbook = await XlsxPopulate.fromFileAsync(selectedFile);console.log('成功读取文件:', selectedFile);const sheet = workbook.sheet(0);// 获取第一行const firstRow = sheet.row(1);// 示例修改:在 A1 单元格写入特定文本sheet.cell('B1').value('此文件已被处理');sheet.cell('F9').value(22.00);sheet.cell('C9').value('测试文件内容替换');// 生成修改后的文件路径const outputPath = path.join(__dirname, 'output.xlsx');await workbook.toFileAsync(outputPath);// 检查修改后的文件是否存在if (!fs.existsSync(outputPath)) {console.error('修改后的文件未生成:', outputPath);return res.status(500).send('修改后的文件未生成');}// 对文件名进行严格编码const originalFileName = '修改后.xlsx';const encodedFileName = encodeURIComponent(originalFileName).replace(/'/g, '%27');// 设置响应头res.setHeader('Content-Disposition', `attachment; filename="${encodedFileName}"`);res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');// 发送修改后的文件给客户端下载res.download(outputPath, originalFileName, async (err) => {if (err) {console.error('下载文件时出错:', err);res.status(500).send('下载文件时出错');}try {// 删除临时文件if (fs.existsSync(selectedFile)) {fs.unlinkSync(selectedFile);}if (fs.existsSync(outputPath)) {fs.unlinkSync(outputPath);}} catch (unlinkErr) {console.error('删除临时文件时出错:', unlinkErr);}});} catch (parseError) {console.error('解析 Excel 文件时出错:', parseError.message);res.status(500).send(`解析 Excel 文件时出错,请检查文件是否损坏或格式是否正确: ${parseError.message}`);}} catch (error) {console.error('处理文件时出错:', error.message);res.status(500).send(`处理文件时出错: ${error.message}`);}
});// 启动服务器
const port = 3000;
app.listen(port, () => {console.log(`服务器运行在端口 ${port}`);
});
3.my-xlsx-populate目录中下创建uploads文件里面存放 .xlxs文件模板
3.my-xlsx-populate目录中右键打开CMD
安装依赖:
npm init -y
npm install express multer xlsx-populate
具体结构:
启动服务器:运行 server.js
文件
node server.js
打开页面
在浏览器中访问 http://localhost:3000
运行后下载文件打开:
server.js中代码对应exce代码中得坐标
下面我们会详细介绍一下 xlsx-populate ,这做效果演示
下载修改完得excel文件
xlsx-populate介绍
xlsx-populate
主要是为 Node.js 环境设计的,因为它依赖于一些仅在 Node.js 环境中可用的功能和库,比如文件系统访问(fs
模块)等。这意味着它不能直接在浏览器端的 JavaScript 中使用,因为浏览器环境缺乏对本地文件系统的直接访问权限,并且存在安全限制。
生产环境中Linux中可以使用pm2来运行server.js文件保持node运行。
主要功能
- 读写Excel文件:可以打开现有的 .xlsx 文件进行编辑或创建新的文件。
- 数据处理:支持对单元格的数据进行各种操作,如设置值、公式计算等。
- 格式调整:能够修改单元格的样式,包括字体大小、颜色、背景色等。
- 图片插入:支持在工作表中添加图片。
- 图表支持:可以在工作表内生成图表。
-
示例修改:在单元格写入特定文本
sheet.cell('B1').value('此文件已被处理');sheet.cell('F9').value(22.00);sheet.cell('C9').value('测试文件内容替换');
2. 设置公式
sheet.cell('D1').formula('SUM(F9:F10)');
3.设置样式
sheet.cell('B1').style({fontColor: 'FF0000', // 红色bold: true,horizontalAlignment: 'center'
});
3.插入图片
const fs = require('fs');
const imageBuffer = fs.readFileSync('path/to/image.png');sheet.addImage({image: imageBuffer,type: 'picture',position: {x: 5, // 列号y: 5, // 行号}
});
4.添加或删除行/列
// 添加一行在第3行的位置
sheet.insertRow(3);// 删除第4行
sheet.deleteRow(4);
5.设置列宽和行高
// 设置列宽
sheet.column('C').width(20);// 设置行高
sheet.row(9).height(30);
更多高级和实用的操作方法:
6. 数据验证(Data Validation)
你可以为单元格添加数据验证规则。
sheet.cell('A1').dataValidation({type: 'list',allowBlank: true,formula1: '"Apple,Banana,Cherry"'
});
7.条件格式(Conditional Formatting)
为单元格或范围设置条件格式。
sheet.range('A1:A10').conditionalFormat({type: 'cellIs',operator: 'greaterThan',formula: 50,style: {fill: 'FFFF00' // 黄色背景}
});
8.添加图表
可以在工作表中插入图表。
sheet.addChart({type: 'column', // 图表类型range: sheet.range('A1:B10'), // 数据范围position: {x: 12, // 列号y: 12 // 行号},width: 400,height: 300
});
9. 复制和移动区域
可以复制或移动指定的区域。
// 复制 A1:B2 区域到 C3
sheet.range('A1:B2').copyTo(sheet.range('C3'));// 移动 A1:B2 区域到 D4
sheet.range('A1:B2').moveTo(sheet.range('D4'));
10.获取单元格值和属性
获取特定单元格的值、公式或其他属性。
const value = sheet.cell('A1').value(); // 获取单元格值
const formula = sheet.cell('A1').formula(); // 获取单元格公式
const style = sheet.cell('A1').style(); // 获取单元格样式
11.批量操作
使用批量操作可以提高性能,尤其是在处理大量数据时。
sheet.batch(() => {for (let i = 1; i <= 100; i++) {sheet.cell(`A${i}`).value(i);}
});
12.设置页眉和页脚、
可以为工作表设置页眉和页脚。
sheet.headerFooter({oddHeader: '&C&"Arial,Bold"Page &P of &N',oddFooter: '&L&"Arial,Italic"Confidential&R&D&T'
});
13. 设置打印区域
可以指定打印区域和打印标题行/列。
sheet.printArea('A1:D20'); // 设置打印区域
sheet.printTitles({rows: '1:1', // 设置第一行为标题行columns: 'A:A' // 设置第一列为标题列
});
14.保存到流(Stream)
可以将修改后的文件保存到一个流中,而不是直接保存到文件系统。
const fs = require('fs');
const writeStream = fs.createWriteStream('output.xlsx');workbook.toStream().pipe(writeStream);
15.冻结窗格
你可以设置工作表中的冻结窗格,方便查看大量数据时固定某些行或列。
sheet.freezePanes('B2'); // 冻结 B2 左上方的所有单元格
16.隐藏行列
可以隐藏指定的行或列。
// 隐藏第3行
sheet.row(3).hidden(true);// 隐藏第C列
sheet.column('C').hidden(true);
17.保护工作表
可以设置工作表的保护功能,防止未经授权的修改。
sheet.protect({password: 'your-password',selectLockedCells: false,selectUnlockedCells: true
});
18. 设置超链接
可以在单元格中插入超链接。
sheet.cell('A1').hyperlink('https://www.example.com');
sheet.cell('A1').value('点击这里访问 Example.com');
19.设置注释
可以为单元格添加注释。
sheet.cell('A1').comment({text: '这是一个示例注释',author: '作者名字'
});
20. 批量设置样式
可以通过 range
方法对多个单元格应用相同的样式。
sheet.range('A1:C3').style({fontColor: '0000FF', // 蓝色字体bold: true,horizontalAlignment: 'center'
});
21.设置单元格类型
可以设置单元格的数据类型(如日期、数字、文本等)。
sheet.cell('A1').type('date'); // 设置单元格为日期类型
sheet.cell('A1').value(new Date()); // 设置当前日期sheet.cell('B1').type('number'); // 设置单元格为数字类型
sheet.cell('B1').value(12345); // 设置数值
22.导入和导出 JSON 数据
可以从 JSON 数据导入到 Excel 文件,或者将 Excel 文件导出为 JSON 数据。
// 导入 JSON 数据到 A1 开始的区域
const jsonData = [{ "Name": "John", "Age": 30, "City": "New York" },{ "Name": "Anna", "Age": 22, "City": "London" }
];
sheet.importData(jsonData, 'A1');// 将 A1 开始的区域导出为 JSON 数据
const exportedData = sheet.exportData('A1:C3');
console.log(exportedData);
相关文章:
前端插件使用xlsx-populate,花样配置excel内容,根据坐添加标替换excel内容,修改颜色,合并单元格...。
需求要求:业务人员有个非常复杂得excel表格,各种表头等,但是模板是固定得。当然也可以实现在excel上搞出各种表格,但是不如直接用已有模板替换其中要动态得内容方便,这里我们用到CSDN得 xlsx-populate 插件。 实列中我…...
Mac m1 连接公司内网
1、创建VPN 1、在系统偏好设置 2、选择网络 3、进行添加 2、添加设置 1、选择VPN 2、类型选择L2TP/IPSec 3、填写服务器IP和账号 4、点击认证设置-填写密码 。然后应用 3、进行特殊配置 网上说苹果系统的问题。 1、创建命令 sudo vim /etc/ppp/options 2、添加内容-主要别…...
Jenkins 部署在 Mac 并在局域网内通过 ip 访问
Jenkins 部署在 Mac 并在局域网内通过 ip 访问 一、修改配置文件 打开文件 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 打开文件 /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 两个文件目录不同,内容一样 <?xml version"1.0" e…...
臻识相机,华夏相机,芊熠车牌识别相机加密解密
臻识,华夏,芊熠这三种车牌识别相机解密我都试过了,可以正常解密成功,其它品牌我暂时没有测试。超级简单,免费的,白嫖无敌! 流程: ①:先导出配置文件,例如我以…...
【Python 专题】数据结构 树
LeetCode 题目104. 二叉树的最大深度(gif 图解)方法一:后序遍历(DFS)方法二:层序遍历(BFS)872. 叶子相似的树(DFS 遍历)1448. 统计二叉树中好节点的数目(DFS 遍历)437. 路径总和 III(前缀和 + DFS 回溯)1372. 二叉树中的最长交错路径(DFS)236. 二叉树的最近公共…...
【飞行器原理学习】——1. 机翼及机翼参数
飞行器原理学习——1.机翼 一、 概述 飞机的各种机翼是飞机的控制面 通过铰链、钢索、液压等方式连接在机身上 操纵面运动时,会改变机翼的弧度和形状,使流经的空气发生偏转,从而影响空气动力的大小。使飞机围绕着3轴运动 二、机翼的操纵面…...
css之display:grid布局改块级元素布局
1.问题: div是块级元素,一个div元素占一行,但是,今天测试样式时,总是会有两个div并占一行,很困惑,结果发现是app这个样式 在main.css里 #app样式布局在main.ts里被应用 2.原因以及样式分析 im…...
如何组织和管理JavaScript文件:最佳实践与策略
在现代Web开发中,JavaScript已经成为不可或缺的一部分。随着项目规模的扩大,JavaScript代码的复杂性也随之增加。如何有效地组织和管理这些文件,不仅影响开发效率,还直接关系到项目的可维护性和可扩展性。本文将深入探讨如何组织和…...
Vue 中组件通信的方式有哪些,如何实现父子组件和非父子组件之间的通信?
一、父子组件通信(垂直通信) 1. Props 传值(父 → 子) 实现方案: <!-- Parent.vue --> <template><Child :user"userData" /> </template><script setup> import { ref } …...
伯克利 CS61A 课堂笔记 11 —— Mutability
本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Objects 02 Example: Strings Ⅰ Representing Strings: the ASCII Standard Ⅱ Representing Strings: the Unicode Standard 03 Mutatio…...
MacOS安装Emacs
个人博客地址:MacOS安装Emacs | 一张假钞的真实世界 在MacOS X上可以使用Homebrew 安装Emacs: $ brew install emacs --with-cocoa 或者用MacPorts: $ sudo port install emacs-app OSX Emacs 网站提供了通用的二进制包。 前两种方法安装…...
基于海思soc的智能产品开发(图像处理的几种需求)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于一个嵌入式设备来说,如果上面有一个camera,那么就可以有很多的用途。简单的用途就是拍照,比拍照更多一点的…...
百度智能云AI收入增3倍,2025开源引流打赢生态战
免费、开源。在DeepSeek重塑产业价值观念后,百度、OpenAI等AI时代的“领航员”纷纷采取行动。 随着开源以雷霆万钧之势袭来,百度下定决心求变。而其底气,就藏在这份财报中。根据财报,2024年,百度集团总收入为1331亿元…...
[数据结构]顺序表详解
目录 一.线性表 二.顺序表 2.1概念及结构 1. 静态顺序表:使用定长数组存储元素。 2. 动态顺序表:使用动态开辟的数组存储。 2.1按需申请 2.2 接口实现:增删查改 SeqList.h: SeqList.c: test.c 一.线性表 线性表 ( line…...
力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 解题思路: 借助行和列有序特性,不断按行或者列缩小范围;途中数字表示每…...
VirtualBox 中使用 桥接网卡 并设置 MAC 地址
在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址,可以按照以下步骤操作: 步骤 1:设置桥接网卡 打开 VirtualBox,选择你的虚拟机,点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…...
ETL工具: Kettle入门(示例从oracle到oracle的数据导入)
kettle介绍 ETL工具,用于对数据的抽取(Extract), 转换(Transform),加载 (Load) Kettle 是一种ETL工具, 现称为 Pentaho Data Integration (PDI) 特点:纯JAVA语言编写 官方学习文档 网站: https://docs.hitachivantara.com/r/en-us/pentaho-data-int…...
未来AI方向落地场景:小语言模型,super_private_agent
未来AI方向落地场景:小语言模型,super_private_agent 目录 未来AI方向落地场景:小语言模型,super_private_agent小语言模型super - private - agent(注重隐私的智能代理)碳基生命和硅基生命交互界面面向agent的专用交互协议和数据接口从web平台经济到网络平台举例说明社交…...
Oracle RAC数据库单节点轮流重启
0、sqlplus / as sysdba 备份参数文件 create pfile/home/oracle/pfile.ora from spfile; 备份控制文件 Alter database backup controlfile to trace; 1、关闭两节点的监听; 2、操作系统层面kill掉所有LOCALNO的所有进程,即:连接会话。 p…...
渲染101对Blender的支持与硬件配置详解
一、Blender版本与渲染器支持 渲染101全面支持 Blender全版本(包括Blender 4.0及早期版本),并适配其内置的 Eevee、Cycles、Workbench 三大渲染器 。此外,平台还兼容 Aces、Realflow、Anima 等40插件,覆盖建模、动画…...
安卓burp抓包,bypass ssl pinning
好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透,遇到了burp无法抓包问题,觉得可以写下来。 问题描述 1. 一台安卓手机,装了面具,可以拿到root 2. 电脑上有burp,设置代理 3.手机和电脑连同一个网段&…...
植物大战僵尸杂交版v3.2.1最新版本(附下载链接)
B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.2.1版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/e5…...
【SQL】多表查询案例
📢本章节主要学习使用SQL多表查询的案例,多表查询基础概念 请点击此处。 🎄数据准备 首先我们创建一个新的表也就是薪资等级表,其余两个表(员工表和薪资表)在多表查询章节中已经创建。然后我么根据这三个表完成下面的12个需求。 create tab…...
使用Python结合`stable-baselines3`库(包含PPO和TD3算法)以及`gym`库来实现分层强化学习的示例代码
以下是一个使用Python结合stable-baselines3库(包含PPO和TD3算法)以及gym库来实现分层强化学习的示例代码。该代码将环境中的动作元组分别提供给高层处理器PPO和低层处理器TD3进行训练,并实现单独训练和共同训练的功能。 代码实现 import g…...
解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”
一、神经网络:AI 领域的 “超级引擎” 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森…...
一周学会Flask3 Python Web开发-redirect重定向
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 前面我们学过渲染到模板页面,这个其实是一种内部的转发,浏览器地址栏地址没有变化。如果我们想重定向…...
FFmpeg 源码编译安装
参考: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu Linux (Ubuntu) 下载 FFmpeg 源码,并将其解压,这里我将它放在 ~/ffmpeg_source 目录下; cd ~/ffmpeg_sources wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org…...
3.Docker常用命令
1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...
vue3面试题进阶版
覆盖 Vue3 的核心知识点、高频考点及实战场景 一、基础与核心概念 MVVM 与 MVC 的区别 MVC:Model(数据)、View(视图)、Controller(控制器),视图更新需手动操作 DOM。MVVM࿱…...
深入理解指针
例题1 int main() {int a[5][5];int(*p)[4];p a;printf("%p, %d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);return 0; }由图知第二个打印的是-4 因为%p是直接将内存中的值当作地址打印 而-4在内存中存放的是其二进制的补码,打印以16进制形式…...
微信小程序实现拉卡拉支付
功能需求:拉卡拉支付(通过跳转拉卡拉平台进行支付),他人支付(通过链接进行平台跳转支付) 1.支付操作 //支付 const onCanStartPay async (obj) > {uni.showLoading({mask: true})// 支付接口获取需要传…...
conda简单命令
查看当前环境已经安装的库 conda list 查看conda已经创建的环境 conda env list切换conda环境 conda activate 环境名称删除环境 conda remove --name 环境名称 --all安装库 conda install 库名卸载库 conda remove 库名导出(导入)环境 保存某个…...
Linux应用之构建命令行解释器(bash进程)
目录 1.分析 2.打印输入提示符 3.读取并且处理输入字符串 4.创建子进程并切换 5.bash内部指令 6.完整代码 1.分析 当我们登录服务器的时候,命令行解释器就会自动加载出来。接下来我们就。在命令行中输入指令来达到我们想要的目的。 我们在命令行上输入的…...
什么是3D可视化?有哪些优势和应用领域?
3D可视化服务是一种基于大数据、物联网、云计算等技术构建的三维可视化系统服务,它提供直观的三维软件应用服务,帮助用户更好地理解和分析数据。以下是对3D可视化服务的详细介绍: 一、3D可视化服务的原理 3D可视化服务的原理主要包括数据采…...
在PyCharm中运行Jupyter Notebook的.ipynb文件及其pycharm软件的基础使用
(注意需使用PyCharm专业版,学生、教师可以申请免费使用:https://www.jetbrains.com/shop/eform/students) 1. pycharm2024版汉化 https://blog.csdn.net/m0_74103046/article/details/144560999 2. pycharm中的python控制台和J…...
解锁C#自定义属性:从0到1的深度实践指南
一、开篇:自定义属性的奇妙世界 在 C# 的编程宇宙中,自定义属性是一个强大且迷人的存在,它就像是代码世界里的魔法标记,为我们的程序赋予了丰富的元数据,让代码变得更加智能和富有表现力。 想象一下,你正…...
Ubuntu 安装 OpenCV (C++)
版本详情: Ubuntu: 22.04 5.15.0-133-generic gcc: 11.4.0 g: 11.4.0 OpenCV: 4.7.0 1. 卸载 OpenCV 进入原先编译 opencv 的 build 目录,在该目录下打开终端,执行以下代码(如果 build 已经删除了,可以重新编译一…...
deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)
deepseek清华大学第二版 DeepSeek如何赋能职场 pdf文件完整版下载 https://pan.baidu.com/s/1aQcNS8UleMldcoH0Jc6C6A?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/3ee62050a2ac...
kill -9 结束某个用户所有进程的方式-linux019
1. 使用 pkill 命令 pkill 命令可以通过用户名直接终止该用户的所有进程。加上 -9 参数,表示强制结束进程。 pkill -9 -u XXXX 说明:这个命令会使用 SIGKILL 信号(即 kill -9)强制终止 ttlsa 用户的所有进程。 2. 使用 killal…...
十大排序算法
排序算法 插入排序冒泡排序选择排序希尔排序计数排序快速排序1经典 Lomuto 分区法2经典 Lomuto 分区法3随机快排 堆排序归并排序桶排序基数排序 插入排序 从i1开始,判断nums[i-1]和nums[i]的大小,一直到nums[i]插入到自己的位置。模拟抓扑克牌的过程&am…...
第8章作业
接口ip配置 r2 [r2]interface GigabitEthernet 0/0/0 [r2-GigabitEthernet0/0/0]ip address 13.0.0.3 24 [r2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [r2-GigabitEthernet0/0/1]ip address 100.1.1.254 24 [r2-GigabitEthernet0/0/1]interface GigabitEthernet…...
解决 LeetCode 串联所有单词的子串问题
问题描述 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["ab","cd","ef"], 那么 &q…...
“深入浅出”系列之QT:(10)Qt接入Deepseek
项目配置: 在.pro文件中添加网络模块: QT core network API配置: 将apiUrl替换为实际的DeepSeek API端点 将apiKey替换为你的有效API密钥 根据API文档调整请求参数(模型名称、温度值等) 功能说明: 使…...
layui.table.exportFile 导出数据并清除单元格中的空格
Layui在执行数据导出的时候,会出现部分数据单元格中有空格的情况,下面的方法可以去除掉单元格中的空格,供大家参考!! function table_export(id,title) {//根据传入tableID获取表头var headers $("div[lay-id" id "] .layu…...
AIRIOT智慧消防管理解决方案
随着科技的飞速发展和城市化进程的不断推进,消防安全问题逐渐凸显。传统消防手段在应对现代复杂多变的火灾事故时显得力不从心,面临着诸多挑战和弊端: 监控不足:传统消防依赖人力和烟感器等设备,导致监控范围有限、反应…...
使用VSCODE开发C语言程序
使用vscode配置C语言开发环境 一、安装VSCODE 1、下载vscode 从官方网站(https://code.visualstudio.com/Download)上,下载windows版本的vscode 2、安装vscode 下载完毕后,按照提示进行安装即可(尽可能不要安…...
Jenkins 创建 Node 到 Windows
Jenkins 创建 Node 到 Windows 一. 新建 Node Dashboard -> Manage Jenkins -> Manage Nodes and Clouds Dashboard -> Nodes -> New Node 二. 配置节点 Node:节点名 Description:节点描述 Number of executors:节点最大同…...
鸿蒙状态管理概述
状态管理 状态管理之v1LocalStorageLocalStorageLink的框架行为LocalStorageProp的框架行为LocalStorage使用场景 AppStorageStorageLink的框架行为StorageProp的框架行为AppStorage的使用场景 PersistentStorageEnvironmentEnvironment内置参数 WatchWatch的使用场景 $$语法$$…...
英文字体:极简现代浓缩未来派科技海报标题排版无衬线字体 PODIUM Sharp Font
PODIUM Sharp 是 2012 年设计的 DUDU 字体的扩展版本。多年后,我决定通过添加新的母版和粗细来重建和开发这种字体。最后,PODIUM Sharp 由 234 种款式组成:从超压缩发际线到超扩展重度。 这个项目的主要目的是在我在旧波兰标本中发现的不同模…...
Linux系统配置阿里云yum源,安装docker
配置阿里云yum源 需要保证能够访问阿里云网站 可以先ping一下看看(阿里云可能禁ping,只要能够解析为正常的ip地址即可) ping mirrors.aliyun.com脚本 #!/bin/bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos…...