python 操作excel表的常用模块主要有2个:
1:xlrd:读取excel表
2:xlwt:创建并写入excel表
安装方法:
可以直接下载安装:https://pypi.python.org/pypi 也可以使用pip3安装
以下以实例记录xlwt模块的使用方法
# 创建一个基本的excel表格
book = xlwt.Workbook(encoding='utf-8') # 生成excel文件并设置编码为utf8
sheet =
book.add_sheet('sheet_name') # 创建第一个sheet 表单
sheet.write(2,
3,
label='test
data') #
一个表单里起始行和列都是从0开始计算,2表示:表单第二行, 3表示:第二行第三列,label表示这个表格的值
book.save('boot.xls') # 保持名为 boot.xls的表
# 进行自定义字体样式的excel表
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1')
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 初始化字体
font.name = 'Times New Roman' # 使用字体的名称
font.bold = True # 字体加粗
font.underline = True # 字体加下划线
font.italic = True # 斜体字
style.font = font # 设定样式使用的字体
sheet.write(0,0, 'unformated') # 不带样式的表单内容
sheet.write(0,1, 'formated', style) # 带样式的表单内容
book.save('boot.xls')
# 设置单元格的宽度
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('sheet1')
sheet.write(0, 0, '测试用例')
sheet.col(0).width = 3333 # 设置表单:sheet1 的第一列所有单元格的宽度
book.save('boot.xls')
# 输入一个日期到单元格
import datetime
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
style = xlwt.XFStyle() # 凡是设置表格属性,都需要初始化一个样式
style.num_format_str = 'M/D/YY' # 设置当前表格的日期格式,以下为其他可选的格式
# D: 表示日期, M:表示月份,Y:表示年,h:表示小时,m:表示分钟,s:表示秒
# Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
sheet.col(1).width = 3333 # 设定日期表格宽度
sheet.write(0,1, datetime.datetime.today(), style) # 设定当前表格日期采用style样式显示
book.save('boot.xls')
# 向表格添加一个公式
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
sheet.write(0, 0, 5)
sheet.write(0, 1, 2)
sheet.write(1, 0, xlwt.Formula(('A1*B1'))) # 实现第一行第一个字段和第二个字段值相乘,写入到第二行第一个表格内
sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) # 实现第一行第一个字段和第二个字段值相加,写入到第二行第二个表格内
book.save('boot.xls')
# 向一个表格添加一个超链接
book = xlwt.Workbook()
sheet = book.add_sheet('sheet_link')
sheet.write(0, 1, xlwt.Formula('HYPERLINK("http://www.baidu.com";"baidu")')) # 在表格里创建一个超链接,名称为:baidu
book.save('boot.xls')
# 合并列和行
# 关于write_merge(x,m,y,n)参数说明:x 表示行数,m表示跨行个数, y表示列, n表示跨列个数,行和列的开始计数都为0
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
sheet.write_merge(0, 0, 1, 3, 'First merge') #
font = xlwt.Font()
font.bold = True
style = xlwt.XFStyle()
style.font = font
sheet.write_merge(1, 2, 0, 3, 'second merge', style)
book.save('boot.xls')
# 设置单元格内容的对其方式,
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
alignment = xlwt.Alignment() # Create Alignment
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
style = xlwt.XFStyle() # Create Style
style.alignment = alignment # Add Alignment to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('boot.xls')
# 为单元格设置背景色
book = xlwt.Workbook()
sheet = book.add_sheet('sheet')
pattern = xlwt.Pattern() # 初始化一个图案
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 可选:NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern_fore_colour = 5 # 背景颜色为黄色
# 可选: 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
style = xlwt.XFStyle()
style.pattern = pattern # 添加样式
sheet.write(0, 0, 'Cell content', style)
book.save('boot.xls')