網(wǎng)站首頁 編程語言 正文
遇到的問題:
用戶批量導(dǎo)入數(shù)據(jù)1000條,導(dǎo)入不成功的問題,提示查詢不到商品資料。這個場景需要依靠批量的數(shù)據(jù),每次測試的時候需要手動生成批量的數(shù)據(jù),然后再導(dǎo)入操作,費(fèi)時費(fèi)勁。所以寫了個腳本來實(shí)現(xiàn)。
在前面有說過用Python實(shí)現(xiàn)導(dǎo)入接口請求,現(xiàn)在來說一下xlsx中1000條自動生成:
xlsx數(shù)據(jù)離不開openpyxl庫,openpyxl庫有個Workbook對象,其代表一個Excel文檔,Workbook中有一張或多張sheet,一個sheet就是一個Worksheet對象。
首先需要導(dǎo)包,from openpyxl import load_workbook,from openpyxl import Workbook。
xlsx文件的新增:
from openpyxl import load_workbook
import xlsxwriter
file_name = "max_1000.xlsx"
# 新建xlsx文件
workbook = xlsxwriter.Workbook(file_name)
worksheet = workbook.add_worksheet('Sheet1')
worksheet.write_row("A1",
['公司', '編碼', '渠道'])
#新增1000條數(shù)據(jù)
while m < 1000:
m += 1
# ["18"]、["21"]、["8"]分別代表第m行第1,2,3列的值,這里是寫死的數(shù)據(jù),也可以是參數(shù)化的數(shù)據(jù)
worksheet.write_row(m, 0, ["18"])
worksheet.write_row(m, 1, ["21"])
worksheet.write_row(m, 2, ["8"])
# 關(guān)閉文件
workbook.close()
# 執(zhí)行批量導(dǎo)入
data = load_yaml('./max_1000.yaml')['upload_file']
execute(data)
xlsx文件的讀?。?/p>
通過Cell對象讀取每一格內(nèi)容
wb = load_workbook('max_1000.xlsx')
sheets = wb.worksheets
# 獲取第一個sheet
sheet1 = sheets[0]
# 獲取sheet1表第2行第1列的數(shù)據(jù)
cell_21 = sheet1.cell(2,1).value
# 獲取sheet1表第3行第2列的數(shù)據(jù)
cell_32 = sheet1.cell(3,2).value
xlsx文件新增后,可用于批量導(dǎo)入的數(shù)據(jù),xlsx文件的讀取可用于數(shù)據(jù)的清理,比如已導(dǎo)入數(shù)據(jù)的清除。
也可用for循環(huán),讀取xlsx文件的所有數(shù)據(jù)。
xlsx文件讀取所有數(shù)據(jù):
wb = load_workbook("max_1000.xlsx")
sheets = wb.worksheets
Sheet1 = sheets[0]
# 循環(huán)讀取數(shù)據(jù),Sheet1.max_row代表表格的最大行數(shù)
for i in range(Sheet1.max_row - 1):
# 獲取Sheet1表中所有行第4列的數(shù)據(jù)
data = Sheet1.cell(i + 2, 4).value
xlsx文件的編輯:
wb = load_workbook(file_path)
ws = wb[sheet]
# 修改.xlsx文件中的數(shù)據(jù),cell[0]對應(yīng)行數(shù), cell[1]對應(yīng)列數(shù),cell[-1]對應(yīng)需要修改后的值
ws.cell(cell[0], cell[1]).value = cell[-1]
wb.save(file_path)
wb.close()
原文鏈接:https://blog.csdn.net/qq_41845402/article/details/128957913
相關(guān)推薦
- 2022-08-20 Go?多環(huán)境下配置管理方案(多種方案)_Golang
- 2022-12-31 Kotlin?Jetpack組件ViewModel使用詳解_Android
- 2022-10-01 windows?server?2016?搭建FTP服務(wù)器詳細(xì)教程_FTP服務(wù)器
- 2022-07-27 Android利用控制點(diǎn)的拖拽畫一個粽子_Android
- 2022-05-27 Go批量操作excel導(dǎo)入到mongodb的技巧_Golang
- 2022-11-08 go語言Pflag?Viper?Cobra?核心功能使用介紹_Golang
- 2022-07-06 C語言深入探究自定義類型之結(jié)構(gòu)體與枚舉及聯(lián)合_C 語言
- 2023-07-15 react全局scss變量
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支