python以其强大的语法以及丰富的第三方库著名,今天就去找了找有没有可以操纵excel表格的库,结果还真被我找到了,记录下来分享给大家
使用python操作excel,分为读与写,读excel使用xlrd,写excel使用xlwt
xlrd
导入第三方库 pip install xlrd就可以进行使用了
主要操作步骤
- 获取excel对象
# -*- coding: utf-8 -*-
import xlrd
import xlwt
from datetime import date,datetime
def read_excel():
# 打开文件
workbook = xlrd.open_workbook(r'F:\demo.xlsx')
2.获取excel的sheet表
# 获取sheet的名字
sheet2_name = workbook.sheet_names()[1]
- 获得sheet的内容
# 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('sheet2')
- sheet的名称,行数,列数
print sheet2.name,sheet2.nrows,sheet2.ncols
- 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内容
6.获取单元格内容
print sheet2.cell(1,0).value
print sheet2.cell_value(1,0)
print sheet2.row(1)[0].value
- 获取单元格内容的数据类型
print sheet2.cell(1,0).ctype
xlwt
书写数据是以sheet为单位的,所以首先要创建新的sheet
在创建sheet之前,先创建Workbook
f = xlwt.Workbook()
创建了workBook之后就可以利用这个workBook创建新的sheet了
sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)
参数1:名字,参数2:是否可以覆盖写入
写入函数
sheet1.write(x,y,str)
合并单元格写入
sheet1.write_merge(7,8,2,4,'ceshi')
合并第8-9行,第3-5列,写入ceshi
添加超链接
n = "HYPERLINK"
sheet1.write_merge(9, 9, 2, 8, xlwt.Formula(n + '("http://www.baidu.com")'),
set_style('Arial', 300, True))
最后,设置字体样式函数如下,在每次写入时都可以设置样式
def set_style(name,height,bold=False):
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = name # 'Times New Roman'
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
return style