返回顶部
首页 > 资讯 > 后端开发 > Python >如何在python中使用openpyxl实现带格式复制表格
  • 155
分享到

如何在python中使用openpyxl实现带格式复制表格

2023-06-13 06:06:45 155人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

如何在python中使用openpyxl实现带格式复制表格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。有合并单元格的,先把合并单元格复制过去,合并单元格用wm=list(

如何在python中使用openpyxl实现带格式复制表格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

有合并单元格的,先把合并单元格复制过去,合并单元格用wm=list(zip(wbsheet.merged_cells))得出合并单元格列表,把其中的(<CellRange A1:A4>,) 替换成为A1:A4格式

再从新表中合并单元格

再用.has_style: #拷贝格式 测试是否有格式,再复制格式和数据

其中:

font(字体类):字号、字体颜色、下划线等

fill(填充类):颜色等

border(边框类):设置单元格边框

alignment(位置类):对齐方式

number_fORMat(格式类):数据格式

protection(保护类):写保护

import os#找文件目录import win32com.client as win32 #操作excel文件from tqdm import tqdm #进度条显示from openpyxl import load_workbook # 读取时导入这个from openpyxl.styles import Font, Alignment #设置单元格格式from openpyxl.utils import get_column_letter, column_index_from_stringfrom openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Fontfrom copy import copypath=input('输入整理前原始路径: ')if path=="":path=os.getcwd()xlsx_lists=[]xls_lists=[]for file in os.listdir(path): filename=os.path.join(path,file) if os.path.isfile(filename):    #是目录  if filename.endswith(".xls"):  xls_lists.append(filename)  if filename.endswith(".xlsx"):  xlsx_lists.append(filename)source_file='原始数据.xlsx'if os.path.exists(os.path.join(os.getcwd(),source_file)):os.remove(os.path.join(os.getcwd(),source_file))choose="1"excel = win32.gencache.EnsureDispatch('Excel.Application')# while choose not in "1|2":#  choose =input("xls转为xlsx:1 xlsx转为xls:2 ")if choose=="1":with tqdm(total=len(xls_lists),desc='写文件数 ',leave=True,unit='个',unit_scale=True,mininterval=0.5,bar_format=None) as pbar:for xls_list in xls_lists:pbar.update(1)wb = excel.Workbooks.Open(xls_list)wb.SaveAs(xls_list+"x", FileFormat = 51) #FileFormat = 51 is for .xlsx extensionwb.Close()        #FileFormat = 56 is for .xls extensionpbar.close()else:with tqdm(total=len(xls_lists),desc='写文件数 ',leave=True,unit='个',unit_scale=True,mininterval=0.5,bar_format=None) as pbar:for xlsx_list in xlsx_lists:pbar.update(1)wb = excel.Workbooks.Open(xlsx_list)wb.SaveAs(xlsx_list[0:len(xlsx_list)-1], FileFormat = 56) #FileFormat = 51 is for .xlsx extensionwb.Close() pbar.close()excel.Application.Quit()tag_file='拆分后表.xlsx'totaldata=pd.DataFrame()writer=pd.ExcelWriter(tag_file)totaldata.to_excel(writer, 'sheet')writer.save()book = load_workbook(tag_file)   #能写入已存在表中wb = load_workbook('原始数据.xlsx')for sheet in wb.sheetnames:print(sheet)wbsheet=wb[sheet]for num in range(3):name=wbsheet.cell(1,num*15+10).valuewbsheet_new = book.create_sheet(name,0)wm=list(wbsheet.merged_cells) #开始处理合并单元格形式为“(<CellRange A1:A4>,),替换掉(<CellRange 和 >,)' 找到合并单元格#print (list(wm))if len(wm)>0 :for i in range(0,len(wm)):cell2=str(wm[i]).replace('(<CellRange ','').replace('>,)','')#print("MergeCell : %s" % cell2)wbsheet_new.merge_cells(cell2)for rows in range(40):wbsheet_new.row_dimensions[rows+1].height = wbsheet.row_dimensions[rows+1].height for col in range(14):wbsheet_new.column_dimensions[get_column_letter(col+1)].width = wbsheet.column_dimensions[get_column_letter(col+1)].widthwbsheet_new.cell(row=rows+1,column=col+1,value=wbsheet.cell(rows+1,num*15+col+1).value)if wbsheet.cell(rows+1,num*15+col+1).has_style:#拷贝格式wbsheet_new.cell(row=rows+1,column=col+1).font = copy(wbsheet.cell(rows+1,num*15+col+1).font)wbsheet_new.cell(row=rows+1,column=col+1).border = copy(wbsheet.cell(rows+1,num*15+col+1).border)wbsheet_new.cell(row=rows+1,column=col+1).fill = copy(wbsheet.cell(rows+1,num*15+col+1).fill)wbsheet_new.cell(row=rows+1,column=col+1).number_format = copy(wbsheet.cell(rows+1,num*15+col+1).number_format)wbsheet_new.cell(row=rows+1,column=col+1).protection = copy(wbsheet.cell(rows+1,num*15+col+1).protection)wbsheet_new.cell(row=rows+1,column=col+1).alignment = copy(wbsheet.cell(rows+1,num*15+col+1).alignment)wb.close()book.save('拆分后表.xlsx')book.close()

上例中,因为要把一个表拆分为三个,所以要循环三次

补充:python-excel 之带有格式及合并单元格样式的表格复制

代码如下:

from openpyxl import load_workbook  def copy_excel(totle_excel,totle_sheetname,down_excel,down_sheetname): down = load_workbook(down_excel) totle = load_workbook(totle_excel) totle_sheet = totle[totle_sheetname] down_sheet = down[down_sheetname] # 两个for循环遍历整个excel的单元格内容 for i, row in enumerate(down_sheet.iter_rows()):  for j, cell in enumerate(row):   totle_sheet.cell(row=i + 1, column=j + 1, value=cell.value) totle.save(totle_excel)

关于如何在Python中使用openpyxl实现带格式复制表格问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网Python频道了解更多相关知识。

--结束END--

本文标题: 如何在python中使用openpyxl实现带格式复制表格

本文链接: https://lsjlt.com/news/266243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在python中使用openpyxl实现带格式复制表格
    如何在python中使用openpyxl实现带格式复制表格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。有合并单元格的,先把合并单元格复制过去,合并单元格用wm=list(...
    99+
    2023-06-13
  • python openpyxl 带格式复制表格的实现
    有合并单元格的,先把合并单元格复制过去,合并单元格用wm=list(zip(wbsheet.merged_cells))得出合并单元格列表,把其中的(<CellRange A1...
    99+
    2024-04-02
  • 如何用Vue3实现可复制表格
    这篇“如何用Vue3实现可复制表格”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用Vue3实现可复制表格”文章吧。最基础...
    99+
    2023-07-04
  • Linux下如何使用openpyxl处理表格数据
    小编给大家分享一下Linux下如何使用openpyxl处理表格数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需...
    99+
    2023-06-27
  • Python如何实现xml格式转txt格式
    本篇内容介绍了“Python如何实现xml格式转txt格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、前言最近学习Yolo v5是遇见...
    99+
    2023-06-29
  • Python如何使用openpyxl复制整张sheet
    这篇文章将为大家详细讲解有关Python如何使用openpyxl复制整张sheet,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过无能的baidu逛了一圈,发现有两三段能用的代码,不过参考之下,发现还有...
    99+
    2023-06-14
  • 怎么在python中使用format实现格式化
    今天就跟大家聊聊有关怎么在python中使用format实现格式化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等...
    99+
    2023-06-14
  • css如何实现表格样式
    这篇文章主要介绍了css如何实现表格样式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。css实现表格样式的方法:首先创建一个HTML示例文件...
    99+
    2024-04-02
  • 如何在Java中使用JTable表格
    这篇文章将为大家详细讲解有关如何在Java中使用JTable表格,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。表格是GUI编程中使用较多,但也是最麻烦的一个控件之一。表格是用来显示二维数据,...
    99+
    2023-05-30
    java jtable
  • 如何在python中合并表格
    今天就跟大家聊聊有关如何在python中合并表格,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎...
    99+
    2023-06-14
  • python中%格式表达式实例用法
    通过%格式表达式可以构建对象的格式化字符串输出。%表达式,由%分隔,左侧为格式字符串,由固定字符串和%开头的格式化样式组成,右侧为实际的对象,或对象元组。 >>> '%o' % 10 '12' ...
    99+
    2022-06-02
    python %表达式
  • 如何在Python中使用openpyxl模块
    这篇文章主要介绍了如何在Python中使用openpyxl模块,此处给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网...
    99+
    2023-06-06
  • Bootstrap如何实现响应式表格
    这篇文章给大家分享的是有关Bootstrap如何实现响应式表格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手...
    99+
    2024-04-02
  • 在Python中如何优雅地创建表格的实现
    目录1. 引言2. 准备工作3. 举个栗子3.1 使用list生成表格3.2 使用dict生成表格3.3 增加索引列3.4 缺失值处理4. 总结1. 引言 如果能够将我们的无序数据快...
    99+
    2024-04-02
  • 如何在python中使用time模块格式时间
    这篇文章将为大家详细讲解有关如何在python中使用time模块格式时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释性、编译性、互...
    99+
    2023-06-14
  • 如何用python复制粘贴excel指定单元格(可保留格式)
    近期学习了openpyxl的用法,发现居然没有【复制、粘贴】这么基础的函数。而且若要用python带格式复制粘贴指定区域的单元格,参考资料更少。 于是参考各路大佬的笔记,整合如下。 ...
    99+
    2023-08-08
    python复制粘贴excel python操作excel
  • 如何使用Bootstrap实现CSS3价格表
    这篇文章给大家分享的是有关如何使用Bootstrap实现CSS3价格表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先来看效果图查看演示 下载源码首先在页面中引入bootstra...
    99+
    2024-04-02
  • Bootstrap中如何使用表格
    这篇文章主要介绍“Bootstrap中如何使用表格”,在日常操作中,相信很多人在Bootstrap中如何使用表格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Bootstra...
    99+
    2024-04-02
  • python如何实现读取excel表格
    本篇内容介绍了“python如何实现读取excel表格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、python读取excel表格数据1...
    99+
    2023-07-02
  • 在PHP中如何使用正则表达式清除空格
    这篇文章将为大家详细讲解有关在PHP中如何使用正则表达式清除空格,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。正则表达式:php有什么特点1、执行速度快。2、具有很好的开...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作