旧版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学习资料(书籍视频),需要学习资料的小伙伴可以私信小编获取
喜欢的小伙伴点赞关注转发一下~。
注:本文取自网络,如有侵权,请联系小编。