用Python操作Excel

本文介绍了Python中xlwt库用于创建和修改.xls文件,包括字体格式化和数据写入,以及xlsxwriter库创建.xlsx文件,绘制图表的功能。还展示了如何使用xlrd和xlutils.copy库来读取和修改.xls文件内容。
摘要由CSDN通过智能技术生成

目录

一.xls文档和xlsx文档的区别

二.xlwt

1.导入库

2.建立并写入

3.保存

4.结果

 三.xlsxwriter

1.导入库

2.建立并写入

3.作图

4.保存

5.结果

 四.修改添加内容

 1.导入库

2.修改

3.保存

4.结果


利用Python实现与Excel文档的联动

一.xls文档和xlsx文档的区别

  • xls 是 Excel 1997-2003 版本的格式;.xlsx 是 Excel 2007 版本的格式
  • .xls 是二进制的复合文档类型的结构;.xlsx 是用新的基于XML的压缩文件格式,使其占用空间更小,运算速度也会快一点,xlsx 中最后一个 x 的意义就在于此。

二.xlwt

创建xls文件

1.导入库

import xlwt

2.建立并写入

#创建工作簿
wb = xlwt.Workbook()

#创建表单
sh = wb.add_sheet('test')

#创建字体对象
font = xlwt.Font()

#字体加粗
font.bold = True
alm = xlwt.Alignment()

#设置左对齐
alm.horz = 0x01

#创建样式对象
style1 = xlwt.XFStyle()
style2 = xlwt.XFStyle()
style1.font = font
style2.alignment = alm

#write 方法参数1:行,参数2:列,参数3:内容
sh.write(0,0,"姓名",style1)#第二个参数如果是0,表示从第一列开始,开头不留出一列,否则会空出一列
sh.write(0,1,"年龄",style1)
sh.write(1,0,"张三")
sh.write(1,1,50,style2)
sh.write(2,0,"李四")
sh.write(2,1,30,style2)
sh.write(3,0,"王五")
sh.write(3,1,32,style2)
sh.write(4,0,"赵六")
sh.write(4,1,40,style2)

3.保存

wb.save("test.xls")

4.结果

第二个参数为0(如上示例代码),则如下图:

若为1:

 

 三.xlsxwriter

创建xlsx文件

1.导入库

import xlsxwriter

2.建立并写入

#创建工作簿,建立的是文件
workbook = xlsxwriter.Workbook('test.xlsx')

#创建表单
sh = workbook.add_worksheet('test')#一页的表单
fmt1 = workbook.add_format()
fmt2 = workbook.add_format()

#字体加粗
fmt1.set_bold(True)

#设置左对齐
fmt2.set_align('left')

#数据
data = [
     ['','姓名','年龄'],
     ['','张三',20],
     ['','李四',30],
     ['','王五',40],
     ['','赵六',45]
]

#写入数据
for i in range(len(data)):
     if( i == 0):
          sh.write_row('A'+str(i+1),data[i],fmt1)
     else:
          sh.write_row('A'+str(i+1),data[i],fmt2)

3.作图

#做图表
chart = workbook.add_chart({'type':'line'})
#创建图表
chart.add_series(
     {
          'name':'=test!$B$1',
          'categories':'=test!$B$2:$B5',
          'values':'=test!$C$2:$C$5'
     }
)
#设置图例
chart.set_title({'name':'年龄'})
chart.set_x_axis({'name':'姓名'})
chart.set_y_axis({'name':'年龄'})
sh.insert_chart('A9',chart)

4.保存

workbook.close()

5.结果

 四.修改添加内容

 1.导入库

import xlrd
import xlwt
from xlutils.copy import copy

2.修改

设计函数求平均值

#求平均年龄
def avg(list):
     sumv = 0
     for i in range(len(list)):
          sumv += list[i]
     return int(sumv/len(list))

修改文件内容

#formatting_info 为True表示保留原格式
wb = xlrd.open_workbook('test.xls',formatting_info = True)

#复制
wbc = copy(wb)
sh = wb.sheet_by_index(0)
age_list = sh.col_values(2)
age_list = age_list[1:len(age_list)-1]
avg_age = avg(age_list)
sh = wbc.get_sheet(0)

#设置左对齐
alm = xlwt.Alignment()
alm.horz = 0x01
style = xlwt.XFStyle()
style.alignment = alm
sh.write(5,1,"平均年龄",style)
sh.write(5,2,avg_age,style)

注意:这里不可以用xlsx文档,xlrd不支持xlsx

3.保存

wbc.save('test.xls')

4.结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值