Python中更加好的使用xlwings操作表格的要点

在写小程序时,业务比较喜欢用excel作为设置和数据存储的介质。每次启动小程序时,都是先打开excel,然后根据excel中的不同sheet中的数据来执行不同程序。在这个过程中,针对不同的节点有不同的处理方法,这边做一个简单总结。

1、用xlwings打开时应该不影响当前的业务操作,出现异常也要让文件正常

用以下代码可以确保文件是单独打开一个wps或者excel实现的,而不是和原来的wps或者excel有关联,并且确保出现异常情况不会导致文件异常

import xlwings as xw
import pandas as pd
from settings import excelFile

# excelFile 是一个excel文件的路径
# 用with 语句来新建一个app可以确保万一出现异常情况,也会把app退出
with xw.App(visible=False,add_book=False) as app:
    # 用with 语句打开文件,可以确保万一出现异常情况,也能把文件关闭
    with app.books.open(excelFile) as wb:
        try:
            # 读取excel中的数据时,我喜欢用df实现,df的数据操作比较方便
            df:pd.DataFrame = wb.sheets('sheet1').range('A1').options(pd.DataFrame,expand='table',index=False).value
            pass
        # 用try 和 finally 可以确保万一出现异常情况,也会把文件保存
        finally:
            wb.save()

1、用xlwings打开excel时要确保文件没有被其他程序打开

try:
    with open(excelFile,mode='a+',buffering=1,newline="")
        pass
except PermissionError:
    raise PermissionError(f"检测到【{execelFile}】已被打开,请关闭后重新运行程序")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值