#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件    :nclass_score_5terms.py
@说明    :excel文件单元格格式批量修改
xlrd读,xlwt写,xlutils作为两者的桥梁,将读到的xlrd转换为xlwt
经查阅资料xlwt好像是在写入的同时设置字体样式大小等:new_sheet.write(2, 1, 12, style)  # 在2行1列写入数据,style为我们设置好的格式
这里使用openpyxl设置单元格样式,注意openpyxl只能操作xlsx文件,xls不适用。可以手动提前另存为xlsx文件,或者使用使用pywin32模块进行转换
1、xlrd打开文件
2、利用xlutils.copy将xlrd对象拷贝转化为xlwt对象
3、使用xlwt设置横向打印,页边距,行高列宽
4、将xls文件转换为xlsx文件
5、使用openpyxl设置字体及字号,标题行取消框线
@时间    :2021/06/10 09:13:26
@作者    :侃侃
@版本    :3.8
'''
import xlrd
import xlwt
from xlutils.copy import copyfrom openpyxl.styles import Font
from openpyxl import load_workbookimport os
import win32com.client as win32from openpyxl.styles import Font
from openpyxl import load_workbook
from openpyxl.styles import Border,Side#将指定文件设置为横向打印,及设置页边距,行高列宽
def xlwt_set(filepath,newfilepath):workbook = xlrd.open_workbook(filepath, formatting_info=True)  # 打开工作簿sheets=workbook.sheets()ncols = sheets[0].ncols#获取列数new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象sheet1=new_workbook.get_sheet(0)#读取第一张表格# 设置页眉为空sheet1.set_header_str(''.encode())# 设置页脚为空sheet1.set_footer_str(''.encode())#设置表格数据打印水平不居中(默认居中)#sheet1.set_print_centered_horz(0)#设置表格数据打印垂直居中(默认不居中)#sheet1.set_print_centered_vert(1)sheet1.set_portrait(0)#设置横向打印sheet1.set_top_margin(2)#设置上页边距sheet1.col(0).width = 4000#设置学号列宽sheet1.col(1).width = 3000#设置姓名列宽sheet1.row(2).height= 3200#设置第二行行高# sheet1.set_bottom_margin(0)# sheet1.set_left_margin(0)# sheet1.set_right_margin(0.55)#设置课程列宽for i in range(2,ncols):sheet1.col(i).width = 1700new_workbook.save(newfilepath)#多个filepath路径文件,使用遍历
def nxlwt_set(dir):for root_dir,sub_dir,files in os.walk(r'' + dir):#遍历目录下的根目录,子目录,所有文件# 对文件列表中的每一个文件进行处理,如果文件名字是以‘xlxs’结尾就# 认定为是一个excel文件,当然这里还可以用其他手段判断,比如你的excel# 文件名中均包含‘res’,那么if条件可以改写为# if file.endswith('xlsx') and 'res' in file:for file in files:filepath=dir+"\\"+filenewfilepath=dir+"\\new"+filexlwt_set(filepath,newfilepath)#将指定文件夹下的xls文件转化为xlsx文件
def nxls_toxlsx(dir):for root_dir,sub_dir,files in os.walk(r'' + dir):#遍历目录下的根目录,子目录,所有文件# 对文件列表中的每一个文件进行处理,如果文件名字是以‘xlxs’结尾就# 认定为是一个excel文件,当然这里还可以用其他手段判断,比如你的excel# 文件名中均包含‘res’,那么if条件可以改写为# if file.endswith('xlsx') and 'res' in file:for file in files:filepath=dir+"\\"+file#xls转换为xlsx#filename = 'C:\\Users\\lenovo\\Desktop\\班级成绩单打印\\002.xls'Excelapp = win32.gencache.EnsureDispatch('Excel.Application')workbook = Excelapp.Workbooks.Open(filepath)# 转xlsx时: FileFormat=51,# 转xls时:  FileFormat=56,workbook.SaveAs(filepath.replace('xls', 'xlsx'), FileFormat=51)workbook.Close()Excelapp.Application.Quit()# 删除源文件os.remove(filepath)# 如果想将xlsx的文件转换为xls的话,则可以使用以下的代码:# workbook.SaveAs(filename.replace('xlsx', 'xls'), FileFormat=56)
#openpyxl设置字体及字号,标题行取消框线
def openpyxl_set(filepath,newfilepath):wb = load_workbook(filepath)sheet = wb.activesheet.cell(row=1, column=1).font=Font(name="宋体",size=14)#设置标题行字体及大小sheet.row_dimensions[1].height=30#设置标题行行高font = Font(name="宋体",size=12)#font = Font(name="宋体",size=12,bold=False,italic=False,color="59A869")#标题行去掉框线border = Border(left=Side(border_style=None,color='000000'),right=Side(border_style=None,color='000000'),top=Side(border_style=None,color='000000'))for i in range(1,sheet.max_column+1):sheet.cell(row=1,column=i).border = borderfor i in range(2,sheet.max_row+1):for j in range(1,sheet.max_column+1):sheet.cell(row=i, column=j).font=fontwb.save(newfilepath)#多个filepath路径文件,使用遍历
def nopenpyxl_set(dir):for root_dir,sub_dir,files in os.walk(r'' + dir):#遍历目录下的根目录,子目录,所有文件# 对文件列表中的每一个文件进行处理,如果文件名字是以‘xlxs’结尾就# 认定为是一个excel文件,当然这里还可以用其他手段判断,比如你的excel# 文件名中均包含‘res’,那么if条件可以改写为# if file.endswith('xlsx') and 'res' in file:for file in files:filepath=dir+"\\"+filenewfilepath=dir+"\\new"+fileopenpyxl_set(filepath,newfilepath)# nxlwt_set('C:\\Users\\lenovo\\Desktop\\test\\新建文件夹')
# nxls_toxlsx('C:\\Users\\lenovo\\Desktop\\test\\新建文件夹')
nopenpyxl_set('C:\\Users\\lenovo\\Desktop\\test\\新建文件夹\\新建文件夹')

python之excel文件打印设置,及单元格样式修改相关推荐

  1. EXCEL中设置后面单元格的数据由前面单元格的数据带出

    EXCEL中设置后面单元格的数据由前面单元格的数据带出 1:新建一个基础数据 2:在[基础数据]中建立基础数据 3:新建一个sheet命令为[操作],并在第一列单位格设置为序列,序列的基础数据在[基础 ...

  2. CSS设置表格行列,给bootstrap table设置行列单元格样式

    1.根据单元格或者行内其他单元格的内容,给该单元格设置一定的css样式 columns: [{ field: 'index', title: '序号', align:"center" ...

  3. poi导出Excel时设置某个单元格颜色

    需求: 查询数据库表数据然后到另一个表找错误的对应字段(就是找到需要填充的单元格所在行的列),对这个单元格进行设置背景色,然后导出数据. 具体的工具类如下 import cn.afterturn.ea ...

  4. Java Excel导出动态自定义单元格样式

    根据表格内容定义单元格样式 效果图: 文章描述两种,一种创建生成时定义样式,另一种在excel在写入文件前修改样式 关键代码一 /*** 数据动态设置样式** @param cell 单元格* @pa ...

  5. easyExcel实现动态表头设置以及单元格样式设置

    easyexcel实现文件导入导出请看上篇博客:springboot集成easyExcel实现文件导入导出 上篇文章已经知道如何使用easyExcel实现简单的文件导入导出,但是导出的表头和格式都是固 ...

  6. hutool工具ExcelWriter设置单个单元格样式

    官网自定义样式: ExcelWriter writer = ...;// 定义单元格背景色 StyleSet style = writer.getStyleSet(); // 第二个参数表示是否也设置 ...

  7. python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑

    请看我另一篇生成Excel的文章(推荐) xlwt 这是一个供开发人员用来生成与Microsoft Excel 95到2003版兼容的电子表格文件的库. 包本身是纯Python,不依赖于标准Pytho ...

  8. python 查找excel内容所在的单元格_使用Python查找Excel单元格引用

    使用openpyxl以这种方式操作Excel文件需要很多细节.首先,值得一提的是,xlsx文件包含每个单元格的两种表示形式-公式和公式的当前值.openpyxl可以返回其中一个,如果需要值,则应在打开 ...

  9. python 查找excel内容所在的单元格_python 读取excel中单元格的内容

    python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...

最新文章

  1. android源码下载方法 批量下载 基于windows os
  2. 【HNOI模拟By YMD】move
  3. 用VS.NET2003制作WEB应用程序的安装包
  4. [leedcode][409][java]
  5. 单片机(MCU)如何才能不死机之对齐访问(Aligned Access)
  6. 双胞胎一个上北大一个上清华,秘诀6个字!还有女生收到清华通知书说“考砸了”……...
  7. MySQL Create JSON Values
  8. 浅谈信息安全及解决方案
  9. 小甲鱼java视频_b站有哪些好的java视频?
  10. leetcode刷题--python
  11. 你绝没看如此详细的PDF去水印教程
  12. Android 开启热点 适配8.0以上
  13. python快速入门豆瓣_python爬虫实践——零基础快速入门(二)爬取豆瓣电影
  14. 小狗钱钱2-读书笔记
  15. Java开发常用软件列表——持续更新
  16. 大数据分析处理关键技术有哪些?
  17. UVA1626 / ZOJ1463 Brackets sequence 区间DP
  18. 开心,终于突破 1000 啦
  19. 【Python】定时获取卫星地球图像作为电脑壁纸
  20. Linux 进程管理学习笔记(一)

热门文章

  1. 品牌网站网站建设方案
  2. lightroom 闪退_子意老师Lightroom从入门到精通系统课程
  3. 【附源码】计算机毕业设计java在线党建学习平台设计与实现
  4. android的电子秤课程设计,课程设计,基于AT89C51的数字电子秤设计分享
  5. 后续(移植到手机上)
  6. mingw编译linux源码,minGW编译cgminer源码
  7. 【Git】Git获取Commit修改文件列表
  8. 仙之侠道2玖章各个任务详情_仙之侠道2玖章给Z武器的任务 | 手游网游页游攻略大全...
  9. 2012七种最最为流行的婚纱摄影的风格
  10. 2019 wps是否可以替代office