zoukankan      html  css  js  c++  java
  • 利用xlutils第三方库复制excel模板

    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. 写入并保存文件
  • 相关阅读:
    zoj 1002 Fire Net 碉堡的最大数量【DFS】
    hdu 2553 n皇后问题【DFS递归解法】
    UVa11988 Broken Keyboard 损坏的键盘【list】
    hdu 1263 水果 【二维map】
    UVa-156 Ananagrams 反片语【map】【vector】
    hdu 2364 Escape【模拟优先队列】【bfs】
    UVA136 Ugly Numbers【set】【优先队列】
    hdu1429 胜利大逃亡(续) 【BFS】+【状态压缩】
    广搜bfs
    DP:Corn Fields(POJ 3254)
  • 原文地址:https://www.cnblogs.com/mafu/p/13736394.html
Copyright © 2011-2022 走看看