網站首頁 編程語言 正文
需求:
從數據庫中查詢出的數據,直接保存到excel表格中的兩種辦法:
這里從sqlite3中查詢出來的數據是這樣的:
values 值為:[('31010251001390002578', 'xxx路門前南全東1'), ('31010251001390004176', 'XXX路門南全西'),('31010251001390002577', 'xxx路門前南全東2'),('31010251001390002512', 'xxx路門前南全東567'),('31010251001390002100', 'xxx路門前南全東8'),('31010251001390002999', 'xxx路門前南全東119'),('3101025100139009111', 'xxx路門前南全東11'),...]
values 值為:
[('31010251001390002578', 'xxx路門前南全東1'),
('31010251001390004176', 'XXX路門南全西'),
('31010251001390002577', 'xxx路門前南全東2'),
('31010251001390002512', 'xxx路門前南全東567'),
('31010251001390002100', 'xxx路門前南全東8'),
('31010251001390002999', 'xxx路門前南全東119'),
('3101025100139009111', 'xxx路門前南全東11'),...]
?其中每一項是一個元組:
('31010251001390002578', 'xxx路門前南全東1')
?把上述數據保存到excel表格的去:
?excel保存數據方法:
方法一:excel庫?xlsxwriter
######################excel-1-第一種保存的方法#################################3
# ###from xlsxwriter.workbook import Workbook
# ##### excel 讀取庫
# # 1.workbook = Workbook('output.xlsx')
# workbook = Workbook(excelname) #output.xlsx
# worksheet=workbook.add_worksheet()
#
#
#
# #############連接sqlite3數據庫,運行查詢命令,獲取查詢結構;
# conn = sqlite3.connect("./datacheck.db")
# cur = conn.execute(strsql)
# values = cur.fetchall() # 查詢結果集
# #################values [('31010251001390002578', 'xxx路門前南全東'), ('31010251001390004176', 'XXX路門南全西'),...]
# ################保存到excel表格中
#
# for i,row in enumerate(values):
# for j,value in enumerate(row):
# worksheet.write(i,j,value)
# # print(f"i={i},j={j},value={value}") #i,j,value分別對應的值 i=7842,j=1,value=xxx路口西門全景1 ;i=7842,j=0,value=31011353001910138692
#
# workbook.close()
#####################excel-1-第一種保存的方法##################################
############################################################################
cur.close() #游標關閉
conn.close() #連接關閉
方法2:openpyxl庫
#################excel第二種保存方法:###################################
wb=openpyxl.Workbook()
wbsheet=wb.create_sheet("結果")
# 連接sqlite3數據庫,運行查詢命令,獲取查詢結構;
conn = sqlite3.connect("./datacheck.db")
cur = conn.execute(strsql)
values = cur.fetchall() #查詢結果集
for row in values:
wbsheet.append(row)
#print(row)
wb.save(excelname) #保存文件名稱
cur.close() #游標關閉
conn.close() #連接關閉
下面是函數代碼:
函數參數:
sqlanylistShare(sqlstement,excelname):
第一個是執行的sql命令,第二個參數是excel表格的名稱,例如“xx市服裝對比數據.xlsx”
def sqlanylistShare(sqlstement,excelname):
#sql指令,用于尋找兩個表中國標id相同的信息
# strsql="select netwl.gbid,netwl.devicename from netwl inner join checkdata on netwl.gbid=checkdata.gbid"
strsql=sqlstement
# 2.excel寫庫 openpyxl
#################excel第二種保存方法:###################################
wb=openpyxl.Workbook()
wbsheet=wb.create_sheet("結果")
# 連接sqlite3數據庫,運行查詢命令,獲取查詢結構;
conn = sqlite3.connect("./datacheck.db")
cur = conn.execute(strsql)
values = cur.fetchall() #查詢結果集
for row in values:
wbsheet.append(row)
print(row)
wb.save(excelname) #保存文件名稱
#################excel第二種保存方法:###################################
######################excel-1-第一種保存的方法#################################3
# ###from xlsxwriter.workbook import Workbook
# ##### excel 讀取庫
# # 1.workbook = Workbook('output.xlsx')
# workbook = Workbook(excelname) #output.xlsx
# worksheet=workbook.add_worksheet()
#
#
#
# #############連接sqlite3數據庫,運行查詢命令,獲取查詢結構;
# conn = sqlite3.connect("./datacheck.db")
# cur = conn.execute(strsql)
# values = cur.fetchall() # 查詢結果集
# #################values [('31010251001390002578', 'xxx路門前南全東'), ('31010251001390004176', 'XXX路門南全西'),...]
# ################保存到excel表格中
#
# for i,row in enumerate(values):
# for j,value in enumerate(row):
# worksheet.write(i,j,value)
# # print(f"i={i},j={j},value={value}") #i,j,value分別對應的值 i=7842,j=1,value=xxx路口西門全景1 ;i=7842,j=0,value=31011353001910138692
#
# workbook.close()
#####################excel-1-第一種保存的方法##################################
############################################################################
cur.close() #游標關閉
conn.close() #連接關閉
csv文件的保存方法:
jieguovalues 值為:
[('31010251001390002578', 'xxx路門前南全東1'),
('31010251001390004176', 'XXX路門南全西'),
('31010251001390002577', 'xxx路門前南全東2'),
('31010251001390002512', 'xxx路門前南全東567'),
('31010251001390002100', 'xxx路門前南全東8'),
('31010251001390002999', 'xxx路門前南全東119'),
('3101025100139009111', 'xxx路門前南全東11'),...]
jieguovalues = cursor.fetchall()
# sipidfilename = sipid + ".xlsx"
sipidfilename = sipid + ".csv"
# wb = openpyxl.Workbook()
# wbsheet = wb.create_sheet("結果")
#########csv文件保存方式###############
fscv=open(sipidfilename,'w')
writer=csv.writer(fscv)
for value in jieguovalues:
writer.writerow(value)
fscv.close()
csv文件保存字典格式數據:
# 直接字典字段寫入到CSV文件中
# coding:utf-8
import csv
data = {'id':'123','name':'anjing','age':'26'}
with open('123.csv','w')as f:
fieldnames = {'id','name','age'} # 表頭
writer = csv.DictWriter(f,fieldnames=fieldnames)
writer.writeheader()
writer.writerow(data)
如果出現空行的問題,優化
# coding:utf-8
import csv
data = {'id':'123','name':'anjing','age':'26'}
# 加入參數“enwline=''”
with open('123.csv','w',newline='')as f:
fieldnames = {'id','name','age'}
writer = csv.DictWriter(f,fieldnames=fieldnames)
writer.writeheader()
writer.writerow(data)
原文鏈接:https://blog.csdn.net/wtt234/article/details/124489871
相關推薦
- 2022-08-04 C#中ListView用法實例_C#教程
- 2024-01-07 SpringSecurity Oauth2 解決 The bean ‘metaDataSourceA
- 2022-05-09 分享Pytorch獲取中間層輸出的3種方法_python
- 2022-06-28 python生成圖片驗證碼的方法_python
- 2022-12-05 useReducer?createContext代替Redux原理示例解析_React
- 2022-07-22 Mybatis為實體類自定義別名的兩種方式
- 2022-04-25 C語言實現線索二叉樹的前中后創建和遍歷詳解_C 語言
- 2022-05-25 Docker?compose配置文件寫法及命令使用示例_docker
- 最近更新
-
- 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同步修改后的遠程分支