openpyxl样式详解17

简介: openpyxl样式详解17

pip install openpyxl

""" 1.警告:openpyxl只可以操作xlsx格式的文件,如果想操作xls请使用xlrd 这边 索引是从1开始的

更离谱的是 创建sheet页面的索引竟然是从0开始的
# 然后还有一点,就是读取值的时候  如果是公式会读出来None,这会在windows打开文件,再关闭就可以了,;linux不知道怎么解决

""" from openpyxl import load_workbook

xls_file_src = "xls_demo.xls" xlsx_file_src = "xlsx_demo.xlsx"

#############获取sheet名字############### def get_sheet_names(): wb = load_workbook(xlsx_file_src) sheet_names = wb.sheetnames print(sheet_names)

############最大值############### def get_max_index(): wb = load_workbook(xlsx_file_src) sheeet_names = wb.sheetnames for sheet_name in sheeet_names: sheet_obj = wb.get_sheet_by_name(sheet_name) max_rows = sheet_obj.max_row max_cols = sheet_obj.max_column print(f"sheet_name = {sheet_name} max_rows={max_rows} max_cols={max_cols}")

############获取所有的值############### def get_cell_value(): wb = load_workbook(xlsx_file_src) sheeet_names = wb.sheetnames for sheet_name in sheeet_names: sheet_obj = wb.get_sheet_by_name(sheet_name) max_rows = sheet_obj.max_row max_cols = sheet_obj.max_column for row_index in range(1,max_rows+1): for col_index in range(1,max_cols+1): value = sheet_obj.cell(row_index,col_index).value print(value)

############用window包 打开xlsx文件 def win32_open_file(file_src): # python -m pip install pypiwin32 import os from win32com import client as wc xl = wc.DispatchEx("Excel.Application") ab_file_src = os.path.abspath(xlsx_file_src) wb = xl.workbooks.open(ab_file_src) xl.Visible = False wb.Save() xl.Quit()

############获取公式计算以后的值###############

def get_cell_value(): win32_open_file(file_src=xlsx_file_src) wb = load_workbook(xlsx_file_src,data_only=True) sheeet_names = wb.sheetnames for sheet_name in sheeet_names: sheet_obj = wb.get_sheet_by_name(sheet_name) max_rows = sheet_obj.max_row max_cols = sheet_obj.max_column for row_index in range(1,max_rows+1): for col_index in range(1,max_cols+1): value = sheet_obj.cell(row_index,col_index).value print(value)

#######设置样式########### from openpyxl.styles import Border, Side, Font, Alignment def _set_cell_style(cell): cell.font = Font(name='微软雅黑', size=11, color="000000") cell.alignment = Alignment(horizontal="center", vertical="center") cell.border = Border(right=Side( border_style="thin", color="000000")) return cell

###########设置样式########### def set_style(): wb = load_workbook(xlsx_file_src) sheeet_names = wb.sheetnames for sheet_name in sheeet_names: sheet_obj = wb.get_sheet_by_name(sheet_name) max_rows = sheet_obj.max_row max_cols = sheet_obj.max_column for row_index in range(1,max_rows+1): for col_index in range(1,max_cols+1): cell = sheet_obj.cell(row_index,col_index) value = cell.value

from openpyxl.styles import Border, Side, Font, Alignment

 

cell.font = Font(name='微软雅黑', size=23, color="000000")
            cell.alignment = Alignment(horizontal="center", vertical="center")
            cell.border = Border(right=Side(
                border_style="thin", color="000000"))
wb.save(xlsx_file_src)


############创建一个新的sheet################ def new_sheet(): wb = load_workbook(xlsx_file_src)

sheet_obj = wb.create_sheet(title="新的sheet Name",index=0)
wb.save(xlsx_file_src)


样式 ############创建一个测试字体################ wb = load_workbook(xlsx_file_src) sheet_obj = wb.create_sheet(title="测试样式",index=0)

测试字体

cell = sheet_obj.cell(1,1) cell.value = "字体" cell.font = Font(name="微软雅黑",size=20,color="FFDAB9")

测试背景色

cell = sheet_obj.cell(1,2) cell.value = "背景色" cell.fill = PatternFill(start_color="FFDAB9",fill_type="solid")

长宽

width = 20 height = 50 cell = sheet_obj.cell(1,3) cell.value = f"底{width} 高{height}" sheet_obj.row_dimensions[1].height=height sheet_obj.column_dimensions["C"].width=width

测试字体位置

cell = sheet_obj.cell(1,4) sheet_obj.column_dimensions["D"].width=width cell.value = "对齐方式" cell.alignment = Alignment(horizontal='left', vertical='center', wrap_text=True)

border_style_list = [ "dashDot", "dashDotDot", "dashed", "dotted", "double", "hair", "medium", "mediumDashDot", "mediumDashDotDot", "mediumDashed", "slantDashDot", "thick", "thin", ] for row_index in range(1,len(border_style_list)+1): sheet_obj.row_dimensions[row_index].height = height cell = sheet_obj.cell(row_index, 5) cell.value = "边框" cell.border = Border(left=Side(border_style=border_style_list[row_index-1], color='000000'), # right=Side(border_style='mediumDashed', color='000000'), # top=Side(border_style='double', color='000000'), # bottom=Side(border_style='dashed', color='000000') )

wb.save(xlsx_file_src)


相关文章
|
消息中间件 监控 数据挖掘
NineData:从Kafka到ClickHouse的数据同步解决方案
NineData 提供了强大的数据转换和映射功能,以解决 Kafka 和 ClickHouse 之间的格式和结构差异,确保数据在同步过程中的一致性和准确性。
750 2
NineData:从Kafka到ClickHouse的数据同步解决方案
|
5月前
|
机器学习/深度学习 人工智能 并行计算
基于昇腾适配蛋白质序列模型ProteinMPNN
ProteinMPNN是一种基于深度学习的蛋白质序列设计模型,核心目标是解决“逆向折叠问题”(inverse folding problem),即根据给定的蛋白质三维结构,设计出能够折叠成该结构的氨基酸序列。ProteinMPNN在计算和实验测试中都有出色的性能表现,不同位置的氨基酸序列可以在单链或多链之间偶联,从而广泛的应用于当前蛋白质设计上。ProteinMPNN不仅在天然蛋白质序列恢复率上面性能要高于传统的Rosetta方法,并且可以恢复先前设计失败的蛋白质。通过前沿AI技术突破科学研究的效率瓶颈,对于蛋白质工程、药物设计、酶设计等领域有极其重要的意义。
基于昇腾适配蛋白质序列模型ProteinMPNN
|
存储 分布式计算 NoSQL
大数据基础知识
【10月更文挑战第15天】
654 2
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
636 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
存储 大数据 虚拟化
【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)
【云计算与大数据技术】虚拟化简介及虚拟化的分类讲解(图文解释 超详细)
1269 0
使用LabVIEW打开默认应用程序中的文档(PDF,Word,Excel,Html)
使用LabVIEW的"Open a Document on Disk.vi",存于<LabVIEW>\vi.lib\Platform\browser.llb,可让默认应用打开硬盘文档。此VI仅基础打开功能,高级控制推荐LabVIEW Report Generation Toolkit或ActiveX。注意:避免版本升级问题,最好将VI复制到vi.lib外的目录。
562 3
|
监控 数据可视化 数据挖掘
ERP系统中的数据分析与决策支持解析
【7月更文挑战第25天】 ERP系统中的数据分析与决策支持解析
1026 0
|
图形学 开发者
U3D开发进阶:精细调整Collider与优化碰撞检测性能
【7月更文第11天】在Unity 3D(简称U3D)开发过程中,精确控制Collider(碰撞器)的设置与合理利用Layer Collision Matrix(层级碰撞矩阵)对于提升游戏性能、优化物理模拟至关重要。本文将深入探讨这两项技术的应用,通过实际案例和代码示例,帮助开发者构建更加高效、流畅的游戏体验。
1812 2
|
图形学 开发者
【实现100个unity特效之1】使用Shader Graph实现动物森友会的世界弯曲效果(带源码)
【实现100个unity特效之1】使用Shader Graph实现动物森友会的世界弯曲效果(带源码)
359 0
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
653 0
下一篇
开通oss服务