Python 使用xlwings库操作excel的简明实践分享之文档拾遗与专业版jinja渲染器的使用

107 阅读2分钟

前面几篇也做了一些练习,相信大家已经会制作一些基本的Excel表了,为深入了解这个xlwings库的工作方法,我阅读了官方文档,这一篇将其中一些比较有用的方法介绍给大家。

文字样式

前面的文章文字样式是用的api.Font调试了的,实际在0.23.0版本以后,库里就已经自带了这个功能。其具有字体,颜色,加粗,字号,斜体四项基本功能。api基本是大写的,这个里面都是小写,颜色也使用的是xlwings统一的元组形式和字符串形式(api使用的是16进制数字形式)。

ws['B2'].font.color = (255,0,111)  
ws['B2'].font.bold = True  
ws['B2'].font.italic = True  
ws['B2'].font.size = 15

image.png  

格式转换

转换为图片

将选定区域转换为图片,图片还是带着单元格的虚假边框

ws['B2:G5'].to_png('1.png')

image.png

转换PDF

ws['B2:G5'].to_pdf('1.pdf')

还有一种是

ws['B2:G5'].api.ExportAsFixedFormat(0,’1.pdf’)

这里面第一个参数0代表pdf,1代表xps,第二个参数文件名可以不写。

这个功能不一定能成功使用上。

转换为HTML

表格对象才有的功能

ws.to_html('1.html')

在浏览器里就是这样的。

image.png

区域边缘

上一篇在添加图片的时候有用到top和left,并没有和大家解释这是什么,聪明的掘友一眼就已经知道是什么了,但我还是要说一下

top 是从指定区域上边界到第一行上边界的距离

left 是从指定区域左边界到第一列左边界的距离

   

专业版使用

Xlwings是有专业版的,如果你想要不花钱使用专业版的功能,一种方法是去www.xlwings.org/trial 申请一个30天的license,二是直接将key置为noncommercial。请注意好开源协议!

设置key的动作

xlwings license update -k YOUR_LICENSE_KEY

在代码里加载key的话,需要在导入xlwings库之前执行

os.environ["XLWINGS_LICENSE_KEY"] = "YOUR_DEPLOY_KEY"

专业版功能示例--命名变量填充

比如可以在以前的小学生信息表上使用jinja语法填充

image.png

import os  
os.environ["XLWINGS_LICENSE_KEY"] = "noncommercial"  
  
import xlwings  
  
app = xlwings.App(visible=True, add_book=False)  
  
app.display_alerts = False  
wb_template = app.books.open('小学生信息表.xlsx')  
  
data = {  
    'name': '汤姆'  
}  
wb_template.render_template(**data)

效果如下

image.png

是一个很实用的功能,这样就不需要像以前一样数格子编号了。需要注意的是要提前在环境安装jinja2的库