python操作Excel设置打印标题时碰到的一个小问题
最近在学习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设置打印标题时碰到的一个小问题相关推荐
- openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)
0 前言 在阅读本文之前,请确保您已满足或可能满足一下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您的电脑已经安装好Python且pip可用. 请确保您已经读过 ...
- Python 操作 excel 插入图片、表格、设置单元格颜色、字体(三)
Python 操作 excel 插入图片.表格.设置单元格颜色.字体 python 操作 excel 插入图片.表格.设置单元格颜色.字体 提示:以下是本篇文章正文内容,下面案例可供参考 一.open ...
- 全网最全 Python 操作 Excel 教程,建议收藏!
[欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库) ...
- 全网最全Python操作Excel教程,建议收藏!
作者:超级大洋葱806 来源:https://blog.csdn.net/u014779536/article/details/108182833 大家好,猪哥前几天帮学妹爬了个数据,使用到了Pyth ...
- 一文学会用Python操作Excel+Word+CSV
作者:奈何缘浅wyj https://juejin.im/post/6868073137263607821 Python 操作 Excel 常用工具 数据处理是 Python 的一大应用场景,而 Ex ...
- 全网最全Python操作Excel教程,赶紧收藏
0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlr ...
- excel设置打印区域_仅在没有打印区域的情况下打印Excel表
excel设置打印区域 Today, we'll look at a time-saving Table trick that you might not know about. See how to ...
- Python操作Excel教程(全网最全,只看这一篇就够)
目录 Python Excel库对比 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 1.2 安装xlrd模块 1.3 使用介绍 1.4 实战训练 2 Python xlw ...
- python与excel做数据可视化-python操作Excel、读取CVS与数据可视化
1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...
最新文章
- 【AAAI2022】基于特征纯化的视线估计算法
- 以后教育孩子学好数学的方法 多思动漫数学
- ​每日一皮:​你的Frozen Throne...
- 通过Matrix进行二维图形仿射变换
- memset函数源码实现
- 红盟php 解密,php教程_神盾加密解密教程(一)PHP变量可用字符
- ubuntu 安装 evpp
- ADS错误(Fatal)L6002U解决方法
- ansible安装配置及实例
- Java Integer类中的parseInt和valueOf的区别
- 最流行的轻量级php框架,推荐20个最近很流行的优秀PHP框架
- LA 2218 Triathlon(半平面交)
- Selenium爬虫 -- 用户动态数据爬取
- visio业务流程图教学_Visio流程图入门
- 向已经存在的Kubernetes集群中添加新的worker节点
- 奶茶店收银系统php版,奶茶店收银系统
- 静态HTML网页设计作品——食品餐饮行业网站模板(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 美食生鲜零食网页设计
- 徐家骏:我在华为工作十年的感悟
- 刚刚涉足神经网络,基于TensorFlow2.0以实现鸢尾花分类为例总结神经网络代码实现的几个步骤,附代码详细讲解
- 小提琴统计图_小提琴图解读 统计学