Python对excel的操作

      之前就想了解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表格内容是:

namenumberpricecountsum
project A2345
section3456
B4567
market1235678
project B6789
项目78910

 

最后贴一下文档链接:http://www.python-excel.org/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值