python操作excel文件:读取、写入、新建表、移除表

#使用python操作excel文件时,需要导入第三方库openpyxl,可使用命令python -m pip install openpyxl进行安装
import openpyxl#导入openpyxl库
from openpyxl import Workbook#导入Workbook

#注意:对excel文件进行操作时,文件要保持关闭状态

#写入:
wb=Workbook()#创建工作表
ws=wb.active#获取文件当前活动sheet
ws['A1']='hello'#表示在A1单元格写入’hello‘
ws.append([1,2,3,4])#表示在第一行单元格依次写入1,2,3,4
# # ws.append({'A':"tom",'C':2})#表示A1="tom",C1=2
# # ws.append({'1':"tom",'3':2})#同样表示A1="tom",C1=2
wb.save(r"./test.xlsx")#保存excel文件

#多行写入
wb=Workbook()#创建工作表
ws=wb.active#获取文件当前活动sheet
data=[[1,2,3,4],[5,6,7,8]]#使用列表嵌套列表的形式存储要写入每一行的数据
for t in range(1,len(data)+1):#遍历要写入的行数
i = 65#ASCII码'65'表示'A'
for j in range(1,len(data[t-1])+1):#遍历每行要写入的数量
ws['%s%d'%(chr(i),t)]=data[t-1][j-1]
i+=1
wb.save(r"./test.xlsx")#保存excel文件

#读取
get_wb=openpyxl.load_workbook(r"./test.xlsx")#获取工作簿
get_sheet=get_wb['Sheet']#获取工作表
get_cell=get_sheet['A2']#获取指定单元格
print(get_cell.row,get_cell.column,get_cell.value)#输出行号、列号、值:2 1 jack

result=[]#定义列表result存储所有读取数据
#使用循环遍历工作表每一行
for i in get_sheet:#遍历工作表每一行
tmp=[]#定义列表tmp存储每行数据
for t in i:#遍历行中的每个单元格
tmp.append(t.value)
result.append(tmp)
print(result)#[['tom', 2, 3, 4], ['jack', None, None, None]]

#新建表写入数据
wb = Workbook()#创建工作表
wb.create_sheet('表1',0)#新建表“表1”,索引为0
ws=wb['表1']#使用表“表1”
ws['A1']='123'#插入数据
wb.save(r'./test.xlsx')#保存数据

#新建多张表、指定表头、删除表
data={'成功':[[1,2,3],[4,5,6]],'失败':[[6,5,4],[3,2,1]]}
def new_sheet(argv:dict,head=None):
wb = Workbook() # 创建工作表
k = argv.keys()
for sheet_name in k:
try:
wb.remove(sheet_name)#如表已存在则移除工作表
except:
pass
wb.create_sheet(sheet_name,0)
ws=wb[sheet_name]
if head:
ws.append(head)#插入表头
sheet_data=argv[sheet_name]
for t in range(1, len(sheet_data) + 1): # 遍历要写入的行数
i = 65 # ASCII码'65'表示'A'
for j in range(1, len(sheet_data[t - 1]) + 1): # 遍历每行要写入的数量
ws['%s%d' % (chr(i), t+1)] = sheet_data[t - 1][j - 1]
i += 1
wb.save(r"./test.xlsx") # 保存excel文件
new_sheet(data,head=['l1','l2','l3'])
原文地址:https://www.cnblogs.com/ttj57/p/13589052.html