HTML+JS實現類型excel的純靜態頁面表格,同時單元格內容可編輯

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>在線表格</title><style>table {border-collapse: separate;border-spacing: 0;table-layout: fixed;  /* 固定列寬 */}td, th {border: 1px solid #ddd; /* 設置默認邊框顏色為 #ddd */padding: 8px;text-align: center;white-space: nowrap;  /* 防止文字換行 */overflow: visible;    /* 讓文字溢出仍然顯示 */text-overflow: unset; /* 不使用省略號 */}.border-black {border: 1px solid black; /* 邊框設置為黑色 */}</style>
</head>
<body><table id="data-table"></table><script>// JSON 數據,包含表格數據以及單元格合并信息和邊框顯示信息  merge中第一個值為列,第二個值為行const tableData = {"columWidth": [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],"rowWidth": [30, 30, 30, 30, 30, 30, 100, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],"rows": [{"cells": ["表格"],"merge": [[24, 0]],"borderColor": [0],"fontSize": [40]},{"cells": ["", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{"cells": ["內容:很長的內容", "", "", "", "名稱:abcdefg", "", "", "", "", "測試", "", "", "", "日期", "", "", "", "用戶", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{"cells": ["", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{"cells": ["", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{"cells": ["01", "", "", "", "", "", "", "", "02", "", "", "", "", "", "", "", "03", "", "", "", "", "", "", ""],"merge": [[6, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [6, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [6, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["號碼", "數量", "數量", "號碼", "數量", "數量", "", "", "號碼", "數量", "數量", "號碼", "數量", "數量", "", "", "號碼", "數量", "數量", "端子號", "數量", "數量", "", ""],"merge": [[0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 0], [0, 0], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 0], [0, 0], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4], [0, 4]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1],"verticalText": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1],},{"cells": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["1", "1", "", "17", "1", "", "", "", "1", "1", "", "17", "1", "", "", "", "1", "1", "", "17", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["2", "1", "", "18", "1", "", "", "", "2", "1", "", "18", "1", "", "", "", "2", "1", "", "18", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["3", "1", "", "19", "1", "", "", "", "3", "1", "", "19", "1", "", "", "", "3", "1", "", "19", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["4", "1", "", "20", "1", "", "", "", "4", "1", "", "20", "1", "", "", "", "4", "1", "", "20", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["5", "1", "", "21", "1", "", "", "", "5", "1", "", "21", "1", "", "", "", "5", "1", "", "21", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["6", "1", "", "22", "1", "", "", "", "6", "1", "", "22", "1", "", "", "", "6", "1", "", "22", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["7", "1", "", "23", "1", "", "", "", "7", "1", "", "23", "1", "", "", "", "7", "1", "", "23", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["8", "1", "", "24", "1", "", "", "", "8", "1", "", "24", "1", "", "", "", "8", "1", "", "24", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["9", "1", "", "25", "1", "", "", "", "9", "1", "", "25", "1", "", "", "", "9", "1", "", "25", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["10", "1", "", "26", "1", "", "", "", "10", "1", "", "26", "1", "", "", "", "10", "1", "", "26", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["11", "1", "", "27", "1", "", "", "", "11", "1", "", "27", "1", "", "", "", "11", "1", "", "27", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["12", "1", "", "28", "1", "", "", "", "12", "1", "", "28", "1", "", "", "", "12", "1", "", "28", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["13", "1", "", "29", "1", "", "", "", "13", "1", "", "29", "1", "", "", "", "13", "1", "", "29", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["14", "1", "", "30", "1", "", "", "", "14", "1", "", "30", "1", "", "", "", "14", "1", "", "30", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["15", "1", "", "31", "1", "", "", "" ,"15", "1", "", "31", "1", "", "", "" ,"15", "1", "", "31", "1", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1]},{"cells": ["", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]},{"cells": ["", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", "" ,"", "", "", "", "", "", "", ""],"merge": [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],"borderColor": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}]};// 動態繪制表格function drawTable(data) {const table = document.getElementById('data-table');// 標記哪些單元格已經合并,防止重復渲染const mergedCells = [];// 繪制數據行data.rows.forEach((rowData, rowIndex) => {const tr = document.createElement('tr');rowData.cells.forEach((cellData, index) => {const td = document.createElement('td');// 跳過已經合并過的單元格if (mergedCells[rowIndex] && mergedCells[rowIndex][index]) {return;  // 跳過合并的單元格}td.textContent = cellData;//設置列寬if (data.columWidth[index]){td.style.maxWidth = data.columWidth[index] + 'px';td.style.minWidth = data.columWidth[index] + 'px';}//設置行高if (data.rowWidth[rowIndex]){td.style.maxHeight = data.rowWidth[rowIndex] + 'px';td.style.minHeight = data.rowWidth[rowIndex] + 'px';}// 設置豎排if (rowData.verticalText && rowData.verticalText[index] === 1) {td.style.writingMode = 'vertical-rl';}// 設置文字大小if (rowData.fontSize && rowData.fontSize[index]) {td.style.fontSize = rowData.fontSize[index] + 'px';}// 合并列if (!rowData.merge[index]) {rowData.merge[index] = [0, 0];}if (rowData.merge[index][0] > 0) {td.setAttribute('colspan', rowData.merge[index][0]);// 標記合并的單元格for (let i = 0; i < rowData.merge[index][0]; i++) {mergedCells[rowIndex] = mergedCells[rowIndex] || [];mergedCells[rowIndex][index + i] = true;}}// 合并行if (rowData.merge[index][1] > 0) {td.setAttribute('rowspan', rowData.merge[index][1]);// 標記合并的單元格for (let i = 0; i < rowData.merge[index][1]; i++) {mergedCells[rowIndex + i] = mergedCells[rowIndex + i] || [];mergedCells[rowIndex + i][index] = true;}}// 設置邊框if (rowData.borderColor[index] === 1) {td.classList.add('border-black');}tr.appendChild(td);});table.appendChild(tr);});editTable(table);}// 調用函數繪制表格drawTable(tableData);//編輯單元格的方法function editTable(table){let currentCell = null;  // 當前編輯的單元格let oldValue = "";  // 原始內容// 雙擊進入編輯模式table.addEventListener("dblclick", function(event) {if (event.target.tagName === "TD") {currentCell = event.target;  // 當前單元格oldValue = currentCell.innerText;  // 保存原始內容const input = document.createElement("input");input.type = "text";input.value = oldValue;currentCell.innerHTML = "";currentCell.appendChild(input);input.focus();// 點擊其他地方退出編輯input.addEventListener("blur", function() {exitEdit();});// 按下回車退出編輯input.addEventListener("keydown", function(e) {if (e.key === "Enter") {exitEdit();}});}});// 退出編輯并顯示信息function exitEdit() {if (currentCell) {const newValue = currentCell.querySelector("input").value;currentCell.innerHTML = newValue;  // 更新內容// 獲取行列索引const rowIndex = currentCell.parentElement.rowIndex;const cellIndex = currentCell.cellIndex;// 顯示行列及編輯前后的內容alert(`行: ${rowIndex + 1}, 列: ${cellIndex + 1}\n編輯前: ${oldValue}\n編輯后: ${newValue}`);currentCell = null;  // 清空當前編輯單元格}}// 點擊其他地方退出編輯document.addEventListener("click", function(event) {if (currentCell && !currentCell.contains(event.target)) {exitEdit();}});}
</script></body>
</html>

效果如圖
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85894.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85894.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85894.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Gartner金融AI應用機會雷達-學習心得

一、引言 在當今數字化時代,人工智能(AI)技術正以前所未有的速度改變著各個行業,金融領域也不例外。財務團隊面臨著如何從AI投資中獲取最大價值的挑戰。許多首席財務官(CFO)和財務領導者期望在未來幾年增加對AI的投入并從中獲得更多收益。據調查,90%的CFO和財務領導者預…

像素著色器沒有繪制的原因

背景 directX調用了 draw&#xff0c;頂點著色器運行&#xff0c;但是像素著色器沒有運行。 原因 光柵化階段被剔除 說明&#xff1a;如果幾何圖元&#xff08;如三角形&#xff09;在光柵化階段被剔除&#xff0c;像素著色器就不會被調用。常見剔除原因&#xff1a; 背面…

jenkins對接、jenkins-rest

https://www.bilibili.com/video/BV1RqNRz5Eo6 Jenkins是一款常見的構建管理工具&#xff0c;配置好后操作也很簡單&#xff0c;只需去控制臺找到對應的項目&#xff0c;再輸入分支名即可 如果每次只發個位數的項目到也還好&#xff0c;一個個進去點嘛。但如果一次要發幾十個項…

北斗導航深度接入小程序打車:高精度定位如何解決定位漂移難題?

你有沒有遇到過這樣的尷尬&#xff1a; 在寫字樓、地下車庫或密集樓群中叫車&#xff0c;系統顯示的位置和你實際所在位置差了幾十米甚至上百米&#xff1b;司機因為找不到你而繞圈&#xff0c;耽誤時間還多花平臺費用&#xff1b;有時明明站在A出口&#xff0c;司機卻跑到B口…

MySQL 主要集群解決方案

MySQL 主要有以下幾種集群解決方案&#xff0c;每種方案針對不同的應用場景和需求設計&#xff1a; 1. MySQL Replication&#xff08;主從復制&#xff09; 類型&#xff1a;異步/半同步復制架構&#xff1a;單主多從特點&#xff1a; 讀寫分離&#xff0c;主庫寫&#xff0c…

基于vue3+express的非遺宣傳網站

? 一個課程大作業&#xff0c;需要源碼可聯系&#xff0c;可以在http://8.138.189.55:3001/瀏覽效果 前端技術 Vue.js 3&#xff1a;我選擇了Vue 3作為核心前端框架&#xff0c;并采用了其最新的Composition API開發模式&#xff0c;這使得代碼組織更加靈活&#xff0c;邏輯…

【7】圖像變換(上)

本節偏難,不用過于深究 考綱 文章目錄 可考題【簡答題】補充第三版內容:圖像金字塔2023甄題【壓軸題】習題7.1【第三版】1 基圖像2 與傅里葉相關的變換2.1 離散哈特利變換(DHT)可考題【簡答題】2.2 離散余弦變換(DCT)2021甄題【簡答題】2.3 離散正弦變換(DST)可考題【簡…

WinUI3入門9:自制SplitPanel

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的&#xff0c;可以在任何平臺上使用。 源碼指引&#xff1a;github源…

【面板數據】上市公司投資者保護指數(2010-2023年)

上市公司投資者保護指數是基于上市公司年報中公開披露的多項內容&#xff0c;從信息透明度、公司治理結構、關聯交易披露、控股股東行為規范等多個維度&#xff0c;評估企業是否在制度上和實際操作中有效保障投資者&#xff0c;特別是中小投資者的合法權益。本分享數據基于我國…

如何解決USB遠距離傳輸難題?一文了解POE USB延長器及其行業應用

在日常辦公、教學、醫療和工業系統中&#xff0c;USB接口設備扮演著越來越關鍵的角色。無論是視頻采集設備、鍵盤鼠標&#xff0c;還是打印機、條碼槍&#xff0c;USB早已成為主流連接標準。然而&#xff0c;USB原生傳輸距離的限制&#xff08;通常在5米以內&#xff09;常常成…

PostgreSQL(TODO)

(TODO) 功能MySQLPostgreSQLJSON 支持支持&#xff0c;但功能相對弱非常強大&#xff0c;支持 JSONB、索引、函數等并發控制行級鎖&#xff08;InnoDB&#xff09;&#xff0c;不支持 MVCC多版本并發控制&#xff08;MVCC&#xff09;&#xff0c;性能更好存儲過程/觸發器支持&…

LINUX 623 FTP回顧

FTP 權限 /etc/vsftpd/vsftpd.conf anonymous_enableNO local_enableNO 服務器 .20 [rootweb vsftpd]# grep -v ^# vsftpd.conf anonymous_enableNO local_enableYES local_root/data/kefu2 chroot_local_userYES allow_writeable_chrootYES write_enableYES local_umask02…

leetcode:77. 組合

學習要點 學習回溯思想&#xff0c;學習回溯技巧&#xff1b;大家應當先看一下下面這幾道題 leetcode&#xff1a;46. 全排列-CSDN博客leetcode&#xff1a;78. 子集-CSDN博客leetcode&#xff1a;90. 子集 II-CSDN博客 題目鏈接 77. 組合 - 力扣&#xff08;LeetCode&#x…

自定義主題,echarts系列嵌套

自定義主題&#xff0c;echarts系列嵌套&#xff0c;完善map地圖系列與lines系列拋物線 自定義主題開發設計&#xff08;如傳感器數據可視化&#xff09; 1.使用typetreemap自定義 TreeMap 主題&#xff08;矩形樹圖系列&#xff09; 2.在矩形樹圖中畫typelines動態連線和typee…

速度與精度的結合:Faster R-CNN模型的性能剖析

目標檢測作為計算機視覺領域的核心問題之一&#xff0c;其重要性隨著深度學習技術的發展而日益凸顯。本文深入探討了基于深度學習的Faster R-CNN模型&#xff0c;這是一種革命性的目標檢測框架&#xff0c;它通過引入區域提議網絡&#xff08;Region Proposal Network, RPN&…

計算機網絡--期末速通版

以下總結提綱來自于hcgg&#xff0c;偉大無需多言。socket編程沒有寫進去&#xff0c;Rdt的話我后來感覺可能只考概念&#xff0c;其余我感覺會考的部分都在里面了&#xff0c;如果有錯誤或者解釋不清楚造成的疑問&#xff0c;希望大家及時指正&#xff0c;感謝。 應用層 DNS…

AI浪潮拐點:MCP與A2A協議如何重塑AI智能體協作生態

一、AI技術演進的必然拐點:從單機智能到群體協作 當AI技術從單模型推理邁向復雜系統協作,MCP(模型協作協議)與A2A(智能體間協作協議)的誕生標志著產業變革的關鍵轉折點。這一演進并非偶然,而是技術發展與社會需求雙重驅動的必然結果。 從技術脈絡看,AI正經歷從"…

Python pyecharts基礎(一)

pyecharts 安裝 pip安裝 pip(3) install pyecharts源碼安裝 $ git clone https://github.com/pyecharts/pyecharts.git $ cd pyecharts $ pip install -r requirements.txt $ python setup.py install # 或者執行 python install.py查看版本 import pyecharts print(pyecha…

【論文閱讀】人工智能在直升機航空電子系統中的應用

人工智能在直升機航空電子系統中的應用 論文摘要文章結構參考文獻 論文摘要 論文摘要:在現代戰爭形勢日趨信息化、智能化的背景下&#xff0c;將人工智能應用于武器裝備已經是大勢所趨。針對直升機飛行任務的特征&#xff0c;對其發展狀況進行了描述&#xff0c;并對其作業能力…

矩陣階數(線性代數) vs. 張量維度(深度學習):線性代數與深度學習的基石辨析,再也不會被矩陣階數給混淆了

文章目錄 前言第一部分&#xff1a;重溫矩陣階數 - 方陣的專屬標簽第二部分&#xff1a;深入張量維度 - 深度學習的多維容器第三部分&#xff1a;核心區別總結第四部分&#xff1a;在深度學習中為何混淆&#xff1f;如何區分&#xff1f;結論 前言 在線性代數的殿堂里&#xf…