本篇文章主要介绍了如何使用Python的openpyxl库来生成自定义格式的Excel文档,特别是在处理数据库中的数据时,相比于旧版的xlwt库,openpyxl更适合生成xlsx文件,因为它提供了更丰富的格式化选项和更好的性能。首先,文章提到openpyxl的优势在于其对xlsx文件的支持,因为xlwt仅限于处理xls文件,且格式更改受到一定的限制,而xlsx文件在存储和编辑上更为灵活。 文章开始部分导入了必要的库,如pymysql用于连接MySQL数据库,以及openpyxl、get_column_letter、Font等用于创建和格式化Excel工作簿和单元格。接着,通过pymysql库连接到数据库,执行SQL查询获取人员信息,然后将查询结果存储在变量`datas`中。 在写入Excel文档的过程中,作者首先创建了一个Workbook对象,并设置了第一个工作表(ws1)的标题。然后,定义了一个名为`write_excel_openpyxl`的函数,该函数接受一个数据列表(`datas`)和一个文件名作为参数。在函数内部,使用循环分别处理行和列的数据插入:首先设置表头(row0),使用`Font`对象定义了不同的字体样式(粗体和常规体),将标题写入第一行并应用相应的字体;接着,遍历查询结果`datas`,将每一项数据写入相应位置的单元格,并根据列索引应用对应的字体样式。 通过这段代码,我们可以看到如何利用openpyxl的强大功能来实现数据库数据与自定义格式的Excel文件之间的高效转换。这包括设置单元格内容、字体样式以及动态生成工作表结构,使得生成的Excel文档既包含了原始数据,又具备了用户所期望的格式。这对于数据分析、报告生成或数据可视化场景非常实用。
(只更改font字体大小)
import pymysql
conn=pymysql.connect(host='10.180.111.114',user='test', passwd='apb34eol', db='processmanager')
cursor = conn.cursor()
sql = 'select * from peopleinfo'
cursor.execute(sql)
datas=cursor.fetchall()
conn.commit()
cursor.close()
conn.close()
from openpyxl.workbook import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
def write_excel_openpyxl(datas,filename):
result_wb = Workbook() # 在内存创建一个工作簿obj
ws1 = result_wb.worksheets[0] #第一个sheet是ws # ws1=wb1.create_sheet('result',0)
ws1.title = "人员信息" #设置ws的名称
row0 = [u'id',u'EmployeeNo',u'Name',u'NameEn',u'Apartment',u'Jurisdiction',u'password',u'Email',u'BusinessPhone',u'MobilePhone',u'Account']
ft = Font(name='Arial', size=11, bold=True)
ftft = Font(name='楷体', size=10, bold=False)
for k in range(len(row0)):
ws1.cell(row=1,column=k+1).value=row0[k]
for i in range(1,len(datas)+1):
for j in range(1,len(row0)+1):
ws1.cell(row=i+1,column=j).value=datas[i-1][j-1] # col=get_column_letter(j)
# ws1.cell('%s%s'%(col,i)).value='%s' % (data[j-1])
ws1.cell(row=i+1,column=j).font=ftft
filename_1='Desktop\\'+filename # 工作簿保存到指定目录下
result_wb.save(filename = filename_1)
二、完整一点的表格处理(sql导出--设定excel格式--命名表头、小标题--存入excel)
1、删除桌面上现存无效同名表格 + 从数据库中导出数据
import os
filename = 'C:\\Users\\han018\\Desktop\\人员信息.xlsx' #检测当前目录下是否有new.xls文件,如果有则清除以前保存文件
if os.path.exists(filename):
os.remove(filename)
import pymysql
conn=pymysql.connect(host='10.180.111.114',user='test', passwd='apb34eol', db='processmanager')
cursor = conn.cursor()
sql = 'select * from peopleinfo'
cursor.execute(sql)
datas=cursor.fetchall()
conn.commit()
cursor.close()
conn.close()
2、
from openpyxl.workbook import Workbook
#from openpyxl.utils import get_column_letter
剩余7页未读,继续阅读
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Ansys Comsol实现力磁耦合仿真及其在电磁无损检测中的应用
- 西门子数控系统调试与配置实战案例教程
- ELM多输出拟合预测模型:简易Matlab实现指南
- 一维光子晶体的Comsol能带拓扑分析研究
- Borland-5技术资料压缩包分享
- Borland 6 技术资料分享包
- UE5压缩包处理技巧与D文件介绍
- 机器学习笔记:深入探讨中心极限定理
- ProE使用技巧及文件管理方法分享
- 增量式百度图片爬虫程序修复版发布
- Emlog屏蔽用户IP黑名单插件:自定义跳转与评论限制
- 安装Prometheus 2.2.1所需镜像及配置指南
- WinRARChan主题包:个性化你的压缩软件
- Neo4j关系数据映射转换测试样例集
- 安装heapster-grafana-amd64-v5-0-4所需镜像介绍
- DVB-C语言深度解析TS流