这里我是用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的用法。