没有合适的资源?快使用搜索试试~ 我知道了~
首页python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
资源详情
资源评论
资源推荐
python操作操作openpyxl导出导出Excel 设置单元格格式及合并处理代码实例设置单元格格式及合并处理代码实例
主要介绍了python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作
具有一定的参考学习价值,需要的朋友可以参考下
这篇文章主要介绍了python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一
定的参考学习价值,需要的朋友可以参考下
贴上一个例子,里面设计很多用法,根据将相同日期的某些行合并处理。
from openpyxl import Workbook
from openpyxl.styles import Font, Fill, Alignment, Border, Side, PatternFill
from handlers.boss_accountant import PbOrderManageBase
from handlers.base.pub_func import ConfigFunc
from dal.models import Shop
from dal.db_configs import DBSession
def export_excel(filename, sheetname, content_body):
"""
Excel表格导出
:param filename: 表格名称
:param sheetname: 工作表名称
:param content_body: 内容体
:return: None
"""
workbook = Workbook()
if not filename:
filename = "导出表格.xlsx"
workbook_sheet = workbook.active
if not sheetname:
sheetname = "工作表"
workbook_sheet.title = sheetname
merge_dict, sheet_row_len, sheet_column_len = merge_content(content_body)
print(merge_dict)
# 数据写入
for row in content_body:
workbook_sheet.append(row)
# 合并处理
for key in merge_dict.keys():
merge_data = merge_dict.get(key)
if key == "title":
workbook_sheet.merge_cells(start_row=merge_data[0], start_column=merge_data[1],
end_row=merge_data[2], end_column=merge_data[3])
workbook_sheet.merge_cells(start_row=2, start_column=merge_data[1],
end_row=2, end_column=merge_data[3])
workbook_sheet['A1'].font = Font(size=20, bold=True)
workbook_sheet['A1'].alignment = Alignment(horizontal='center', vertical='center')
else:
# 使用sum求值
workbook_sheet.cell(row=merge_data[0] + 3, column=12).value = '=SUM({}:{})'.format(
format_value(str(merge_data[0] + 3), 10), format_value(str(merge_data[1] + 3), 10))
workbook_sheet.cell(row=merge_data[0] + 3, column=14).value = '=SUM({}:{})'.format(
format_value(str(merge_data[0] + 3), 11), format_value(str(merge_data[1] + 3), 11))
workbook_sheet.cell(row=merge_data[0] + 3, column=13).value = '=({}-{})'.format(
format_value(str(merge_data[0] + 3), 12), format_value(str(merge_data[0] + 3), 14))
for i in [2,12, 13, 14]:
workbook_sheet.merge_cells(start_row=merge_data[0]+3, start_column=i,
end_row=merge_data[1]+3, end_column=i)
# 合计求和
for i in [12, 13, 14]:
workbook_sheet.cell(row=sheet_row_len, column=i).value = '=SUM({}:{})'.format(
format_value(3, i), format_value(sheet_row_len - 1, i))
# 单元格底色
last_row = workbook_sheet[sheet_row_len]
for each_cell in last_row:
each_cell.fill = PatternFill("solid", fgColor="00CDCD")
# 边框设置
for each_common_row in workbook_sheet.iter_rows("A1:{}".format(format_value(sheet_row_len, sheet_column_len))):
for each_cell in each_common_row:
each_cell.border = Border(left=Side(style='thin', color='000000'),
right=Side(style='thin', color='000000'),
top=Side(style='thin', color='000000'),
bottom=Side(style='thin', color='000000')
)
workbook_sheet.column_dimensions['B'].width = 15
workbook_sheet.column_dimensions['C'].width = 20
workbook.save(filename)
def merge_content(content_body):
"""
合并统计
:param content_body: 数据体
:return: 合并字典
"""
sheet_column_len = len(content_body[3])
sheet_row_len = len(content_body)
merge_dict = {}
data_content = content_body[3:-1]
merge_dict["title"] = (1, 1, 1, sheet_column_len)
current_data = data_content[0][1]
current_row = 0
start_row = 1
end_row = 0
weixin_38680764
- 粉丝: 3
- 资源: 904
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0