第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > python从数据库中取出文件保存到excel csv表格中的办法:

python从数据库中取出文件保存到excel csv表格中的办法:

时间:2024-01-16 13:53:19

相关推荐

python从数据库中取出文件保存到excel csv表格中的办法:

需求:

从数据库中查询出的数据,直接保存到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-8import csvdata = {'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-8import csvdata = {'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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。