python操作excel表格

本文介绍了使用Python的xlutil、xlwt和xlrd库进行Excel表格操作,包括读取数据、创建新表并写入数据以及向已有表中添加数据。当处理数据超过65536行时,建议使用openpyxl包,后续内容将详解openpyxl的使用。
摘要由CSDN通过智能技术生成

这里我是用python3来操作excel表,使用的python包为xlutil、xlwt与xlrd等。
1.读取数据

#coding=utf-8
from xlwt import *
import xlrd
from xlutils.copy import copy
import os
def read_excel(filename):
    #读取Excel数据
    try:
        bk = xlrd.open_workbook(filename)
    except:
        print("错误")
        exit()
    table = bk.sheets()[0]#读第一张表的数据
    nrows = table.nrows#数据的总行数
    for i in range(nrows):
        print(table.row_values(i))

2.创建新表并写入数据

#coding=utf-8
from xlwt import *
import xlrd
from xlutils.copy import copy
import os
def create_excel(filename, data):
    file = Workbook(encoding = 'utf-8')
    #指定file以utf-8的格式打开
    table = file.add_sheet('data')
    #指定打开的文件名

    ldata = []
    num = [a for a in data]
    #for循环指定取出key值存入num中
    num.sort()
    #字典数据取出后无需,需要先排序

    for x in num:
    #for循环将data字典中的键和值分批的保存在ldata中
        t = [int(x)]
        for a in data[x]:
            t.append(a)
        ldata.append(t)

    for i,p in enumerate(ldata):
    #将数据写入文件,i是enumerate()函数返回的序号数
        for j,q in enumerate(p):
            # print i,j,q
            table.write(i,j,q)
    file.save(filename)
#字典数据
data = {
            "1":["张三",150,120,100],
            "2":["李四",90,99,95],
            "3":["王五",60,66,68]
            }
create_excel(a.xlsx,data)

3.向已有表中添加数据

#coding=utf-8
from xlwt import *
import xlrd
from xlutils.copy import copy
import os
def write_excel(filename,data,col_num):
    #写内容到现有的excel中
    try:
        bk = xlrd.open_workbook(filename)
    except:
        print("文件打开错误!")
        exit()
    #复制excel
    wb = copy(bk)
    sheet = wb.get_sheet(0)
    for i in range(len(data)):
        sheet.write(i,col_num,data[i])
    os.remove(filename)
    wb.save(filename)

当然上述方法只能处理65536条以内的数据,表超过65536行的话会溢出报错,可以通过openpyxl包执行,下一博客将介绍openyxl的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值