Python3中操作xlsx文件

1.openpyxl使用
openpyxl是Python可以用于处理xlsx的库!

2.openpyxl安装

pip install openpyxl

3.使用技巧
(1)打开excel文件,获取工作表
import openpyxl
wb=openpyxl.load_workbook('ttt.xlsx')  #打开excel文件
print(wb.get_sheet_names())  #获取工作簿所有工作表名
sheet=wb.get_sheet_by_name('Sheet1')  #获取工作表
print(sheet.title) 
sheet02=wb.get_active_sheet()  #获取活动的工作表
print(sheet02.title)
(2)操作单元格
print(sheet['A1'].value)  #获取单元格A1值
print(sheet['A1'].column)  #获取单元格列值
print(sheet['A1'].row)  #获取单元格行号


print(sheet.cell(row=1,column=1).value)  #获取单元格A1值,column与row依然可用
for i in range(1,4,1):
    print(sheet.cell(row=i,column=1).value) #更加方便实用
print(sheet.max_column)  #获取最大列数
print(sheet.max_row)  #获取最大行数


(3)读取excel文件
#wbname==即文件名称,sheetname==工作表名称,可以为空,若为空默认第一个工作表
def readwb(wbname,sheetname):
    wb=openpyxl.load_workbook(filename=wbname,read_only=True)
    if (sheetname==""):
        ws=wb.active
    else:
        ws=wb[sheetname]
    data=[]
    for row in ws.rows:
        list=[]
        for cell in row:
            aa=str(cell.value)
            if (aa==""):
                aa="1"
            list.append(aa)
        data.append(list)
    print (wbname +"-"+sheetname+"- 已成功读取")
    return data


(4)新建excel,并写入数据
#新建excel
def creatwb(wbname):  
    wb=openpyxl.Workbook()
    wb.save(filename=wbname)
    print ("新建Excel:"+wbname+"成功")
# 写入excel文件中 date 数据,date是list数据类型, fields 表头
def savetoexcel(data,fields,sheetname,wbname):   
    print("写入excel:")
    wb=openpyxl.load_workbook(filename=wbname)
    sheet=wb.active
    sheet.title=sheetname  
    field=1
    for field in range(1,len(fields)+1):   # 写入表头
        _=sheet.cell(row=1,column=field,value=str(fields[field-1]))
    row1=1
    col1=0
    for row1 in range(2,len(data)+2):  # 写入数据
        for col1 in range(1,len(data[row1-2])+1):
            _=sheet.cell(row=row1,column=col1,value=str(data[row1-2][col1-1]))
    wb.save(filename=wbname)
    print("保存成功")

实例:

1.写一个Excel文件代码:

from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# 在内存中创建一个workbook对象,而且会至少创建一个worksheet
wb = Workbook()
#获取当前活跃的worksheet,默认就是第一个worksheet
ws = wb.active
#设置单元格的值,A1等于6(测试可知openpyxl的行和列编号从1开始计算),B1等于7
ws.cell(row=1, column=1).value = 6
ws.cell(row=2, column=2).value = 7
#从第2行开始,写入9行10列数据,值为对应的列序号A、B、C、D...
for row in range(2,11):
    for col in range (1,11):
        ws.cell(row=row, column=col).value = get_column_letter(col)
#可以使用append插入一行数据
ws.append(["mo","suo","zhong"])
#保存
wb.save(filename="F:\\lj\\a.xlsx")

2.对该文件进行读操作

from openpyxl import load_workbook
#打开一个workbook
wb = load_workbook(filename="F:\\lj\\a.xlsx")
#获取当前活跃的worksheet,默认就是第一个worksheet
#ws = wb.active
#当然也可以使用下面的方法
#获取所有表格(worksheet)的名字
sheets = wb.get_sheet_names()
#第一个表格的名称
sheet_first = sheets[0]
#获取特定的worksheet
ws = wb.get_sheet_by_name(sheet_first)
#获取表格所有行和列,两者都是可迭代的
rows = ws.rows
columns = ws.columns
#迭代所有的行
for row in rows:
    line = [col.value for col in row]
    print(line)
#通过坐标读取值
print(ws.cell(row=1,column=1).value)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值