【Python学习】Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

在Python操作Excel 的模块有 xlrd、xlwt、xlutils等。

    xlrd:读取Excel文件数据

    xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话,比较推荐xlutils模块,它可以可复制原excel格式

 1 复制代码
 2 #coding=utf-8
 3 import xlrd,xlwt
 4 from xlutils.copy import copy
 5 
 6 #读取文件
 7 read_file = xlrd.open_workbook(file_path,formatting_info=True)
 8 #参数注释:
 9 #file_path:文件路径,包含文件的全名称
10 #formatting_info=True:保留Excel的原格式
11 
12 #将文件复制到内存
13 write_data = copy(read_file)
14 
15 #读取复制后文件的sheet1
16 write_save = write_data.get_sheet(0)
17 
18 #写入数据
19 write_save.write(x,y,value)
20 #参数注释:
21 #x,y:写入目标格的位置坐标
22 #value:写入数据
23 
24 #保存写入数据后的文件到原文件路径
25 write_data.save(self.file_path)

样式:

 1 #coding:utf-8
 2 import os
 3 import time        
 4 import xlwt
 5 
 6 filename="test_xlwt.xls"
 7 if os.path.exists(filename):
 8     os.remove(filename)
 9 def set_color(color,bold):
10     style=xlwt.XFStyle()
11     font=xlwt.Font()
12     font.colour_index=color
13     font.bold = bold
14     style.font=font
15     return style
16 title_style=set_color(0x06,True)
17 xls=xlwt.Workbook()
18 shet1=xls.add_sheet("test_sheet")
19 shet1.write(0,0,"test",set_color(0x02,True))  #红色
20 shet1.write(0,1,"test",set_color(0x05,False))  #黄色
21 shet1.write(0,2,u"你好",set_color(0x00,True))  #黑色加粗
22 shet1.write(0,3,u"你好",set_color(0x00,False))  #黑色不加粗
23 shet1.write(0,4,u"你好",title_style)  #黑色加粗
24 xls.save("test_xlwt.xls")
 1 import xlwt
 2 from datetime import datetime
 3 
 4 # 设置样式 字体name Times New Roman 字体颜色为红色 数字格式为:#,##0.00
 5 style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',
 6     num_format_str='#,##0.00')
 7 
 8 # 设置样式 日期格式为D-MMM-YY    
 9 style1 = xlwt.easyxf(num_format_str='D-MMM-YY')
10 
11 # 新建工作簿
12 wb = xlwt.Workbook()
13 
14 # 新建工作表
15 ws = wb.add_sheet('A Test Sheet')
16 
17 # 向某行某列写入数据
18 ws.write(0, 0, 1234.56, style0)
19 ws.write(1, 0, datetime.now(), style1)
20 ws.write(2, 0, 1)
21 ws.write(2, 1, 1)
22 ws.write(2, 2, xlwt.Formula("A3+B3"))
23 
24 # 保存工作表
25 wb.save('1.xls')
作者:gtea 博客地址:https://www.cnblogs.com/gtea
原文地址:https://www.cnblogs.com/gtea/p/12751101.html