網站首頁 編程語言 正文
1.需求分析:
1.對比兩個excel表格中相同列的數據,表格A,表格B
2.A--表格有gbid(20位數字),name-設備名字
3.B--表格有gbid(20位數字),name-設備名字也有類似的位置信息
要求:
1.找出表格a與表格b中相同的數據【判斷依據是gbid,如果gbid相同就是認為是一個數據】
2.找出表格a中有的數據,但是表格b中沒有的數據【判斷依據是gbid,如果gbid相同就是認為是一個數據】
3.找出表格b中有的數據,但是表格a中沒有的數據【判斷依據是gbid,如果gbid相同就是認為是一個數據】
————————————————
?
2.設計思路:
實現的部分代碼:
1.把一個表格A中的數據讀入到一個全局的list列表中
2.然后讀另外一個表格B一行行讀,讀取后就是與列表進行對比[gbid的對比]
3.如果B中的數據在A中【列表中】存在,就是在B的excel表格中第16列標記為數字1,同時背景色為紅色,以及打印出“紅色的id信息”
4.最終保存表格B的數據以及第16列狀態信息
5.通過表格b中的16列狀態就是可以知道,b表格中哪些數據在A中有,哪些沒有
?
#程序思路 1.讀入我方從導出的所有地市的數據表格sheet-->data # 2.讀入對方數據治理的導出的數據的,sheet為“ck” # 3.導入所有數據的國標id到一個gloablist=[]這里,導出完畢后檢索 # 4.循壞對方表中的國標ID那列,判斷每個id是否在“gloablist=["這里,在這里就是在對方檢索表的16列添加數字1,否則添加0 # ------ # 優化版本,優化存入數據到本地json格式,軟件啟動后直接讀取到內存為列表形式,然后在對對比 # gbid--->list #優化輸入表格輸入名稱錯誤的問題,簡單優化下
?
?3.使用數據幫助說明:
前提:兩個表格,表格1是:工作簿是data 表格2工作簿是ck;
1.導入網力excel表格數據,重點關注第六列數據是否是國標編號【31010100581394000030】20位編碼;
同時表格的工作簿一定要是“data"
2.數據檢測表格,重點關注第一列【待檢測的編號】,以及第16列【數據寫入狀態1,0】
同時表格的工作簿一定要是“ck"
3.運行“數據檢測”稍等一會就是在當前目錄下生成“Dest_”開頭的文件,關注第16列有1的就是說明有這個數據,0的就是沒有這個數據
?
前提:兩個表格,表格1是:工作簿是data 表格2工作簿是ck; 1.導入網力excel表格數據,重點關注第六列數據是否是國標編號【31010100581394000030】20位編碼; 同時表格的工作簿一定要是“data" 2.數據檢測表格,重點關注第一列【待檢測的編號】,以及第16列【數據寫入狀態1,0】 同時表格的工作簿一定要是“ck" 3.運行“數據檢測”稍等一會就是在當前目錄下生成“Dest_”開頭的文件,關注第16列有1的就是說明有這個數據,0的就是沒有這個數據
4. 核心代碼:
啟動時候檢測是否有db.json文件,如果有就是加載進入系統
db.json----->為導入表格的id信息的
if os.path.exists("db.json"):
print("db.json數據加載中....")
# 啟動程序后就是把json文件內容整體讀取到gloablist列表中,用于檢索數據
with open("db.json","r",encoding="utf8")as fr:
gloablist=json.load(fr)
print("數據加載完畢!")
5.入庫的核心代碼:
def impotdatalib():
gloablist = []
pvg10 = input("pvg數據導出的gbid表格入庫:")
pvg10 = pvg10.strip()
if (not pvg10.endswith("xlsx")):
pvg10 = (pvg10 + ".xlsx")
print("生成入庫索引文件,請等待...")
wb = load_workbook(pvg10)
sheet = wb["data"] #單元薄必須是“data"
max_row = sheet.max_row+1
print("導入數據rows:",max_row)
max_column = sheet.max_column+1
print("導入數據columns:",max_column)
for i in range(1, max_row):
for j in range(1, max_column):
if (j == 6): # device id 31010100581994000030 -->20設備id
gbid=sheet.cell(row=i, column=6).value
gloablist.append(gbid)
print("入庫數據總量為:",len(gloablist))
with open("db.json","w",encoding="utf8") as fjson:
json.dump(gloablist,fjson,ensure_ascii=False) #ensure_ascii=False 避免中文亂碼
原文鏈接:https://blog.csdn.net/wtt234/article/details/124472790
相關推薦
- 2022-06-23 nginx日志格式分析以及修改詳解_nginx
- 2022-12-13 C語言MFC導出dll回調函數方法詳解_C 語言
- 2022-07-01 Pytorch圖像處理注意力機制解析及代碼詳解_python
- 2022-12-05 Python最長回文子串問題_python
- 2023-06-19 Python進行文件處理的示例詳解_python
- 2022-10-02 利用Android封裝一個有趣的Loading組件_Android
- 2023-04-03 gin項目部署到服務器并后臺啟動的步驟_Golang
- 2022-10-17 Qt線程池QThreadPool的使用詳解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支