最近在学习python操作Excel,在网上找到一段代码,将几个工作表合并成一个工作簿的多个工作表,实现以下效果:



首先,将要合并的工作表名存储在列表中,使用for循环写入Excel中

# 将要导入的Excel文件名存储在列表中
# 虚构几家门店,用于示范
names = [[0,'01:北京路店'],[1,'02:上海路店'],    [2,'03:福州路店'],[3,'04:广州路店'],[4,'05:西安路店'],[5,'06:昆明路店']]
# 创建一个新的Excel工作簿
wb = openpyxl.Workbook()for num in range(len(names)): #打开要导入的Excel文件road = names[num][1]workbook = openpyxl.load_workbook( road+ '.xlsx') worksheet = workbook.active# 在新的Excel中创建工作表ws = wb .create_sheet(road,num)# 将Excel写入到同名下的工作表for i,row in enumerate(worksheet.iter_rows()):for j,cell in enumerate(row):ws.cell(row=i+1, column=j+1, value=cell.value)
# 保存写入后的工作簿
wb.save('example.xlsx')
wb.close()

很顺利的完成了!导出合并后的表格,顺便设置了一下表格样式,完成后,我又找到了两句代码,修改后用于设置Excel的打印标题。

wb = openpyxl.load_workbook('example.xlsx')
sheets = wb.sheetnames
for i in range(len(sheets)):sheet= wb[sheets[i]]sheet.print_title_rows = '1:3' # 前三行为打印标题
wb.save('example.xlsx')
wb.close()

这个时候,问题出现了,打印标题一直设置不行,然后开始到处查找问题来源,改了些代码都没有成功,直到我打开Excel才发现了一个问题。


原先设置的工作表名是 “01:北京路店 ”,生成工作簿里的工作表名却变成了 “01_北京路店”,尝试将其改回,出现提示,在这里我使用的是WPS打开Excel。

感觉可能是这里产生的问题,修改一下

# 创建一个新的Excel工作簿
wb = openpyxl.Workbook()for num in range(len(names)): #打开要导入的Excel文件road = names[num][1]workbook = openpyxl.load_workbook( road+ '.xlsx') worksheet = workbook.active# 在新的Excel中创建工作表  ***在这里修改!!!***ws = wb .create_sheet(str(num+1)+'-'+road[3:],num)# 将Excel写入到同名下的工作表for i,row in enumerate(worksheet.iter_rows()):for j,cell in enumerate(row):ws.cell(row=i+1, column=j+1, value=cell.value)
# 保存写入后的工作簿
wb.save('example.xlsx')
wb.close()


运行一下,没问题了

附:完整代码

# -*- coding: utf-8 -*-
# sheets_to_1_workbook.py
# 导入模块import openpyxl
from openpyxl.styles import Font
from openpyxl.styles import NamedStyle
from openpyxl.styles import Side
from openpyxl.styles import Border
from openpyxl.styles import Alignment# 将要导入的Excel文件名存储在列表中# 虚构几家门店,用于示范
names = [[0,'01:北京路店'],[1,'02:上海路店'],    [2,'03:福州路店'],[3,'04:广州路店'],[4,'05:西安路店'],[5,'06:昆明路店']]# 创建一个新的Excel工作簿
wb = openpyxl.Workbook()for num in range(len(names)): #打开要导入的Excel文件road = names[num][1]workbook = openpyxl.load_workbook( road+ '.xlsx') worksheet = workbook.active# 在新的Excel中创建工作表ws = wb .create_sheet(str(num+1)+'-'+road[3:],num)# 将Excel写入到同名下的工作表for i,row in enumerate(worksheet.iter_rows()):for j,cell in enumerate(row):ws.cell(row=i+1, column=j+1, value=cell.value)
# 保存写入后的工作簿
wb.save('example.xlsx')
wb.close()# 设置表格格式
def style_adjustment(filename):CellStyle = NamedStyle(name = 'CellStyle')fontObj = Font(name=u'等线', bold=False, italic=False, size=11)CellStyle.font = fontObjCellStyle.alignment = Alignment(horizontal = 'left', vertical = 'center') # 水平垂直居中border = Side(border_style = 'thin', color = '000000') # 线框样式CellStyle.border = Border(left = border, top = border, right = border, bottom = border) # 设置单元格边框样式wb = openpyxl.load_workbook(filename)  sheets = wb.sheetnames for i in range(len(sheets)):sheet= wb[sheets[i]]for row in sheet.iter_rows():for cell in row:cell.style = CellStylefor rowNum in range(1,sheet.max_row+1):sheet.row_dimensions[rowNum].height = 20   #设置行高    sheet.column_dimensions['A'].width = 40 # 设置列宽sheet.column_dimensions['B'].width = 12   sheet.column_dimensions['C'].width = 9sheet.column_dimensions['D'].width = 9sheet.column_dimensions['E'].width = 9sheet.freeze_panes = 'F4' #冻结前三行wb.save(filename)wb.close()style_adjustment('example.xlsx')# 将Excel里的每个工作表前三行设置为打印标题行
wb = openpyxl.load_workbook('example.xlsx')
sheets = wb.sheetnames
for i in range(len(sheets)):sheet= wb[sheets[i]]sheet.print_title_rows = '1:3' # the first 3 row
wb.save('example.xlsx')
wb.close()

终于好了!感谢Python,人生苦短!

python操作Excel设置打印标题时碰到的一个小问题相关推荐

  1. openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)

    0 前言 在阅读本文之前,请确保您已满足或可能满足一下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您的电脑已经安装好Python且pip可用. 请确保您已经读过 ...

  2. Python 操作 excel 插入图片、表格、设置单元格颜色、字体(三)

    Python 操作 excel 插入图片.表格.设置单元格颜色.字体 python 操作 excel 插入图片.表格.设置单元格颜色.字体 提示:以下是本篇文章正文内容,下面案例可供参考 一.open ...

  3. 全网最全 Python 操作 Excel 教程,建议收藏!

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库) ...

  4. 全网最全Python操作Excel教程,建议收藏!

    作者:超级大洋葱806 来源:https://blog.csdn.net/u014779536/article/details/108182833 大家好,猪哥前几天帮学妹爬了个数据,使用到了Pyth ...

  5. 一文学会用Python操作Excel+Word+CSV

    作者:奈何缘浅wyj https://juejin.im/post/6868073137263607821 Python 操作 Excel 常用工具 数据处理是 Python 的一大应用场景,而 Ex ...

  6. 全网最全Python操作Excel教程,赶紧收藏

    0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlr ...

  7. excel设置打印区域_仅在没有打印区域的情况下打印Excel表

    excel设置打印区域 Today, we'll look at a time-saving Table trick that you might not know about. See how to ...

  8. Python操作Excel教程(全网最全,只看这一篇就够)

    目录 Python Excel库对比 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 1.2 安装xlrd模块 1.3 使用介绍 1.4 实战训练 2 Python xlw ...

  9. python与excel做数据可视化-python操作Excel、读取CVS与数据可视化

    1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...

最新文章

  1. 【AAAI2022】基于特征纯化的视线估计算法
  2. 以后教育孩子学好数学的方法 多思动漫数学
  3. ​每日一皮:​你的Frozen Throne...
  4. 通过Matrix进行二维图形仿射变换
  5. memset函数源码实现
  6. 红盟php 解密,php教程_神盾加密解密教程(一)PHP变量可用字符
  7. ubuntu 安装 evpp
  8. ADS错误(Fatal)L6002U解决方法
  9. ansible安装配置及实例
  10. Java Integer类中的parseInt和valueOf的区别
  11. 最流行的轻量级php框架,推荐20个最近很流行的优秀PHP框架
  12. LA 2218 Triathlon(半平面交)
  13. Selenium爬虫 -- 用户动态数据爬取
  14. visio业务流程图教学_Visio流程图入门
  15. 向已经存在的Kubernetes集群中添加新的worker节点
  16. 奶茶店收银系统php版,奶茶店收银系统
  17. 静态HTML网页设计作品——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
  18. 徐家骏:我在华为工作十年的感悟
  19. 刚刚涉足神经网络,基于TensorFlow2.0以实现鸢尾花分类为例总结神经网络代码实现的几个步骤,附代码详细讲解
  20. 小提琴统计图_小提琴图解读 统计学

热门文章

  1. 使用JSONObject 读取 jason对象中的key
  2. (八)理解迭代思维(80)
  3. 近期全球知识图谱相关行业动态、会议讲座、综述推荐
  4. Chrome 66之后禁止网页声音自动播放问题解决
  5. 人体常用穴位按摩保健方法(动画图解)
  6. SQL基础教程学习第六站:数据更新
  7. Android中设置字体居中,【Android】TextView中不同大小字体如何上下垂直居中?
  8. 【电信学】【2013】未知环境下移动机器人导航研究
  9. 数据挖掘的过程是什么?通俗易懂
  10. For Your Dream