python操作excel让工作自动化-python实现Excel自动化

旧版Excel与新版Excel的区别2007版的Excel默认使用xlsx格式,而2003默认使用xls格式。xls格式文件使用具有特定规律的二进制格式,核心结构是Excel特有的复合文档类型结构。xlsx文件与之不同它的核心结构是xml数据集结构,相比xls,xlsx结构更加清晰,相同数据占用空间更小。

使用xlrd读取Excel文件数据

import xlrd

book = xlrd.open_workbook("people.xlsx")

使用xlrd读取工作表数据

sheet = book.sheets()[0]

sheet = book.sheet_by_index(0)

sheet = book.sheet_by_name("Sheet1")

使用xlrd读取单元格数据 row与col都是0开始sheet.cell(row,col)

xlwt将数据写入Excel文件#创建xls文件对象 book = xlwt.Workbook()

#新建工作表 sheet = book.add_sheet("sheet1’)

#写入数据 sheet.write(0,0’二两’)

#保存为xls文件 book.save("people2.xls’)

xlutils复制Excel

使用xlutils修改数据使用xlutils的copy方法将xlrd所属对象转为xlwt所属对象,从而实现直接修改工作表中已有数据的目的。

from xlutils.copy import copy

rd_book = xlrd.open_workbook("people.xlsx")

rd_sheet = rd_book.sheet()[0]

wt_book = copy(rd_book)

wt_sheet = wt_book.get_sheet(0)

wt_sheet.write(row, 0, "修改内容")

openpyxl写入数据

xlwt只支持生成xls格式的Excel,无法将数据写入xlsx格式的Excel文件中。openpyxl库可以将数据写入到xlsx格式的Excel中。

import openpyxl

//创建工作薄对象

wb = openpyxl.Workbook()

//sheet 工作薄对象

ws = wb.active

//creat_sheet()创建新的worksheet

ws2 = wb.create_sheet("NewTitle", 1)

ws2.cell(row=1, colimn=1, value="First")

wb.save("test.xlsx")

openpyxl的下标是从1开始的

openpyxl读取数据并修改

import openpyxl

//打开已有的xlsx文件

wb = openpyxl.load_workbook("test.xlsx")

//返回该Excel文件中所有的sheet

print(wb.sheetnames)

ws = wb["NewTitle"]

//改变标签颜色

ws.sheet_properties.tabColor = "99CCCC"

ws.cell(row=1,column=1, value="new first")

wb.save(test2.xlsx)

openpyxl修改工作表中的样式

import openpyxl

from openpyxl.styles import Font, colors, Alignment

//创建Excel文件对象

wb = openpyxl.Workbook()

ws = wb.active

rows = [

["ID", "Name", "age"],

[1, "张三", 28],

[2, "李四", 25],

[3, "王五", 40],

[4, "赵六", 23]

]

for row in rows:

//添加多行

ws.append(row)

font = Font(name="微软雅黑", size=25, italic=True, color=colors.RED, bold=True)

ws["A1"].font = font

//第五行行高,下标从1开始

ws.row_dimensions[5].height = 40

//A列列宽

ws.column_dimensions["A"].width = 30

//合并单元格,往左上角写入数据

//合并一行中的几个单元格

ws.merge_cells("A9:C7")

//合并一个矩形区域中的单元格

ws.merge_cells("A9:C13")

ws["A9"] = "合并单元格"

ws.save("test3.xlsx")

openpyxl读取大批量数据

当要处理特别大的Excel时,就需要使用openpyxl的只读(read_only)或只写(write_only),在只读或只写模式下,openpyxl可以使用恒定的内存来处理无限的数据,其原理就是先处理一部分,处理完后,释放内存,然后再读入部分数据进行处理。

只读模式:

from openpyxl import load_workbook

# read_only设置为True

wb = load_workbook(filename="big.xlsx", read_only=True)

ws = wb["big_sheet"]

for row in ws.rows:

for cell in row:

print(cell.value)

只写模式:

from openpyxl import Workbook

from openpyxl.cell import WriteOnlyCell

from openpyxl.comments import Comment

from openpyxl.styles import Font

# write_only设置为True

wb = Workbook(write_only = True)

ws = wb.creat_=sheet()

cell = WriteOnlyCell(ws, value="只写状态下的内容")

cell.cont = Font(name="微软雅黑", size=36)

# 插入Excel批注

cell.comment = Comment(text="这是一个批注", author="二两")

# 再只写工作薄中,只能用append()

ws.append([cell, 3.14, None])

wb.save("write_only_file.xlsx")

注: 只写模式下,不会包含任何工作表,要使用create_sheet()方法去创建 只写状态下,单元格想要具有样式或注释,使用openpyxl.cel.WriteOnlyCell()

小编这里还有python学习资料(书籍视频),需要学习资料的小伙伴可以私信小编获取

喜欢的小伙伴点赞关注转发一下~。

注:本文取自网络,如有侵权,请联系小编。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值