Python之利用第三方库套用excel模板,模板的样子假设如下:

现在要用这个模板,并且在“第二行第二列”的下方填入内容:

#!usr/bin/python3
# -*-coding=utf-8 -*- from xlutils.copy import copy #注意xlutils所用格式是xls
import xlrd
import xlwt #找到要套用的excel模板并且用xlrd打开,formatting_info=True表示照搬格式;
tem_excel = xlrd.open_workbook("template.xls", formatting_info=True); #这里的formatting_info=True必须使用xls格式,而且是正规的xls格式,不是拿个xlsx文件改成xls.
#找到需要的工作表,以索引的方式
tem_sheet = tem_excel.sheet_by_index(0) #新建一个工作簿,并拷贝前面打开的工作簿
new_excel = copy(tem_excel)
#在新的工作簿里新建工作表
new_sheet = new_excel.get_sheet(0)
#在新的工作表里写入内容,默认是是使用表格的初始格式,也就是不套用模板
new_sheet.write(2,1,12) #在表的第三行第二列写入数字12[打开表格会发现并没有套用格式]
new_sheet.write(3,1,18) #在表的第四行第二列写入数字18[打开表格会发现并没有套用格式]
new_sheet.write(4,1,19) #在表的第五航第二列写入数字19[打开表格会发现并没有套用格式]
new_sheet.write(5,1,15) #在表的第六航第二列写入数字15[打开表格会发现并没有套用格式]
new_excel.save('test.xls') #将工作簿保存到指定位置; '''
#鉴于上述写入并没有套用我们想要的格式,我们人工设置他们的格式.
#新建样式开始
'''
style = xlwt.XFStyle() #初始化自定义格式,空样式
font = xlwt.Font() #初始化字体
font.name = "微软雅黑" #设置字体名称
font.bold = True #设置字体加粗
font.height = 360 #字体大小的高度是字号乘以20,这里设置的是18号字体
style.font = font #将字体样式添加到空样式style里 #新建边框样式
borders = xlwt.Borders() #初始化单元格边框
borders.top = xlwt.Borders.THIN #上,THIN代表是细线,也可以设置为粗线等样式
borders.bottom = xlwt.Borders.THIN #下
borders.left = xlwt.Borders.THIN #左
borders.right = xlwt.Borders.THIN #右
style.boders = borders #将边框样式添加到style样式 #新建对齐样式
alignment = xlwt.Alignment() #初始化对齐样式
alignment.horz = xlwt.Alignment.HORZ_CENTER #水平中心对齐
alignment.vert = xlwt.Alignment.VERT_CENTER #垂直中心对齐
style.alignment = alignment #将对齐样式添加到style样式 #开始写入数据到表格并附带样式
new_sheet.write(2,1,12,style); #将样式应用到单元格2,1,也就是第三行第二列,并附带样式style
new_sheet.write(3,1,12,style); #将样式应用到单元格3,1,也就是第四行第二列,并附带样式style #保存数据
new_excel.save('20200926.xls');

样式效果如下:

有几点注意:

  • 利用xlutils套用格式的时候,formatting_info = True前的文件格式一定是xls,不然会出现不可预期的错误;
  • 简单套用写入保存,是不会套用格式的,只会按默认的格式保存文档,所以要手动设置格式;
  • 步骤是:
  1. 打开模板文件
  2. 复制模板文件
  3. 设置格式
  4. 设置字体
  5. 设置边框
  6. 设置对齐
  7. 写入并保存文件

利用xlutils第三方库复制excel模板的更多相关文章

  1. 【react】利用prop-types第三方库对组件的props中的变量进行类型检测

    1.引言--JavaScript就是一个熊孩子   1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java ...

  2. 利用python第三方库提取PDF文件的表格内容

    小爬最近接到一个棘手任务:需要提取手机话费电子发票PDF文件中的数据.接到这个任务的第一时间,小爬决定搜集各个地区各个时间段的电子发票文件,看看其中的差异点.粗略统计下来,PDF文件的表格框架是统一的 ...

  3. 利用已有库对excel进行读和写

    读excel的内容:libxls库 C: https://github.com/evanmiller/libxls  或 http://libxls.sourceforge.net/ 参考博客:htt ...

  4. 利用jieba第三方库对文件进行关键字提取

    已经爬取到的斗破苍穹文本以TXT形式存储 代码 import jieba.analyse path = 'C:/Users/Administrator/Desktop/bishe/doupo.text ...

  5. Python 标准库、第三方库

    Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...

  6. prop-types:该第三方库对组件的props中的变量进行类型检测

    利用prop-types第三方库对组件的props中的变量进行类型检测

  7. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  8. 在服务端C#如何利用NPOI构建Excel模板

    目前本人接触过两种模板导出的方式:(1)C#利用NPOI接口制作Excel模板,在服务端用数据渲染模板(2)在前端利用前人搭建好的框架,利用office编写xml制作模板,在客户端进行数据的渲染,导出 ...

  9. Python:使用第三方库xlwt来写Excel

    继上一篇文章使用xlrd来读Excel之后,这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表示write x ...

随机推荐

  1. linux(cemtos7.x)安装docker

    卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest ...

  2. 求1-1e11内的素数个数(HDU 5901 Count primes )

    参考链接:https://blog.csdn.net/Dylan_Frank/article/details/54428481 #include <bits/stdc++.h> #defi ...

  3. go特性-数组与切片

    数组: 复制传递(不要按照c/c++的方式去理解,c/c++中数组是引用传递),定长 切片: 引用传递,底层实现是3个字段 array(数组) + len(长度) +cap(容量) type slic ...

  4. 通过weakHashMap避免过期引用导致的内存泄漏

    问题由来 数组为基础实现的集合在退出元素时,并不会将引用指向空指针,过期引用存在对象便不会被回收. 措施 1.WeakHashMap当其中的key没有再被外部引用时,就会被回收.ThreadLocal ...

  5. .Net Core AddTransient、AddScoped和AddSingleton的使用

    区别: AddTransient 每次service请求都是获得不同的实例,暂时性模式:暂时性对象始终不同,无论是不是同一个请求(同一个请求里的不同服务)同一个客户端,每次都是创建新的实例 AddSc ...

  6. GoLang 自学系列(二)—— defer

    defer 关键字 首先来看官网的定义: A "defer" statement invokes a function whose execution is deferred to ...

  7. 题解 洛谷 P3396 【哈希冲突】(根号分治)

    根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...

  8. JDK8日期类入门

    关于jdk8的时间类的用法,网上有很多教程教你如何用,比如: System.out.println(LocalDateTime.now()); 可以获取当前的时间, 2020-12-06T18:02: ...

  9. 第四十章、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...

  10. 第15.42节、PyQt输入部件:QFontComboBox、QLineEdit、QTextEdit、QPlainText功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 输入部件量比较多,且功能很丰富,但除了用于编写编辑器.浏览器 ...