之前就想了解python如何对excel操作,简单贴一下代码模板,只需要安装好了xlrd和xlwt就可以正常运行了
xlrd和xlwt只适用于旧版本的excel,Excel 2010就需要使用penpyxl
#-*- coding:utf-8 -*-
#旧版本
import xlrd
import xlwt
#文件名
file = 'excel.xls'
#设置表格样式
def set_style(name,height,bold=False):
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中
al.vert = 0x01 # 设置垂直居中
style.alignment = al
style.font = font
return style
#写Excel
def write_excel():
#实例化
wt = xlwt.Workbook(encoding="utf-8")
#add_sheet为添加sheet,一个文件可以加多个sheet,cell_overwrite_ok表示覆盖时是否报错
sheet = wt.add_sheet("data",cell_overwrite_ok = True)
col = ["project A","section","B","market123","project B",u"项目"]
row = ["name","number","price","count","sum"]
#写入行目录
for i in range(len(row)):
#write(x,y,content),x为row,y为column,content为输入内容
sheet.write(0,i,row[i])
#写入列目录
for j in range(len(col)):
sheet.write(j+1,0,col[j])
#写入数据
for n in range(1,len(row)):
for m in range(1,len(col)+1):
sheet.write(m,n,n+m)
#合并输入
#table.write_merge(x, x + m, y, y + n, string, style)
#x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式。
# sheet.write_merge(8,9,6,7,sum,style=set_style("test",400))
#保存文档
wt.save(file)
#读取excel
def read_excel():
# 打开文件
wb = xlrd.open_workbook(filename=file)
#获取excel文件中的第几个表
sheet = wb.sheet_by_index(0)
#也可通过excel表的子表名称获取
#sheet = wb.sheet_by_name(u'data')
#获取整行数据
print u"行目录:",sheet.row_values(0)
#获取整列的数据
print u"列目录",sheet.col_values(0)
sum = 0
#遍历数据并读取
for i in range(1,len(sheet.col_values(0))):
print
for j in range(1,len(sheet.row_values(0))):
#cell(x,y),x为row,y为column
tmp = sheet.cell(i, j).value
print tmp,
sum += float(tmp)
print
print "数据总和:",sum
if __name__ == '__main__':
write_excel()
read_excel()
程序输出:
行目录: [u'name', u'number', u'price', u'count', u'sum']
列目录 [u'name', u'project A', u'section', u'B', u'market123', u'project B', u'\u9879\u76ee']
2.0 3.0 4.0 5.0
3.0 4.0 5.0 6.0
4.0 5.0 6.0 7.0
5.0 6.0 7.0 8.0
6.0 7.0 8.0 9.0
7.0 8.0 9.0 10.0
数据总和: 144.0
结果excel.xls表格内容是:
name | number | price | count | sum |
project A | 2 | 3 | 4 | 5 |
section | 3 | 4 | 5 | 6 |
B | 4 | 5 | 6 | 7 |
market123 | 5 | 6 | 7 | 8 |
project B | 6 | 7 | 8 | 9 |
项目 | 7 | 8 | 9 | 10 |
最后贴一下文档链接:http://www.python-excel.org/