首页 > 其他分享 >openpyxl样式详解17

openpyxl样式详解17

时间:2023-03-19 18:07:33浏览次数:40  
标签:sheet openpyxl 17 max cell 详解 file obj wb

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)

标签:sheet,openpyxl,17,max,cell,详解,file,obj,wb
From: https://blog.51cto.com/wusen/6131269

相关文章

  • xlrd详解
    #pipinstallxlrd==1.2.0"""1.高版本的包不支持xlsx格式的文件,2.如果想操作xlsx请安装低版本的包这边索引是从0开始的"""importxlrdxls_file_src="xls_de......
  • Linux下的awk用法详解
    (Linux下的awk用法详解)一、awk介绍1.AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人AlfredAho,PeterWeinberger,和Br......
  • 网络系统管理Linux环境——17.StorageSrv之SAMBA
    题目要求服务器AppSrv上的工作任务4. SAMBA创建zhangsan和lisi用户用于测试文件共享;创建samba共享,本地目录为/data/share1,要求:共享名为share1。仅允许zhangsan用户能上传......
  • 【Android】Message、Handler、MessageQueue、Looper 详解
    1前言​Handler即处理器,常用于跨线程通讯:线程A和线程B拥有同一个handler对象,在线程A中使用handler的sendMessage()方法发送消息,在线程B中使用handler......
  • 尚硅谷MyBatis4_核心配置文件详解
    <environments>可以配置多个连接数据库的环境defaultdefault属性指明了默认使用的环境id多个environment示例<configuration><!--设置连接数据库的环境-->......
  • Linux根目录详解
    bin:  “一种文件格式的缩写”dev: “存储硬件设备信息目录”home:“宿主目录”lib64:“64位相关的一些比较特殊的一些库文件”mnt:“存储挂载设备的目录”proc ......
  • Thread Interrupt详解
    线程interruptpublicvoidinterrupt()publicstaticbooleaninterrupted()publicbooleanisInterrupted()interrupt如下方法的调用会使得线程进入阻塞状态,而......
  • Optional 详解
    1前言Optional是Java8的新特性,专治空指针异常(NullPointerException,简称NPE)问题,它是一个容器类,里面只存储一个元素(这点不同于Conllection)。为方便用户通过Lambd......
  • 正则表达式(Regular Expression)详解
    1前言正则表达式主要用于复杂文本处理,如模式匹配、格式检验、文本替换等。常用的通配符有:^,$,*,.,,-,+,?,&,|,(),[],{}2String中的split()、matches()、r......
  • Java线程池详解
    1使用线程池的好处降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行;提高线程的......