Python 操作excel:修改excel文件中的数据(附 xlutils.copy 无法使用的解决方案)

这里我们需要使用到两个package:
xlrdxlutils

但是在使用 xlutils 的时候遇到了不少坑!

比如找不到模块:

module 'xlutils' has no attribute 'copy'

看了下安装的 package 文件,发现 __init__.py 是空的!

于是又去查阅 github 上的信息:
xlutils 在 github 上的链接
发现 __init__.py 文件确实是空的。

照理来说不应该呀!我想是不是被人篡改了?而这个 xlutils 包实际上用的人并不多,所以也一直没人发现。

最早很多撰写的 xlutils 使用教程并没有出现这个问题,说明当时__init__.py 文件肯定不是空的!

解决方案:把 xlutils 内的模块都写进 init.py 文件

from .compat import *
from .copy import *
from .display import *
from .filter import *
from .margins import *
from .save import *
from .styles import *
from .view import *

程序代码:

import xlrd
import xlutils

# 打开一个 excel 文件
old_excel = xlrd.open_workbook('./test.xls')
workbook_all = xlutils.copy(old_excel)

# 获取 sheet 对象
sheet = workbook_all.get_sheet(0)

# 修改数据
sheet.write(1, 1, 'modified!')

# 添加 sheet 页
workbook_all.add_sheet('sheet2',cell_overwrite_ok=True)
# 这里如果已经有了 sheet2,那会报错:Exception: duplicate worksheet name 'sheet2'

# 保存同名文件,达到覆盖修改的目的,其中未被修改的内容保持不变
workbook_all.save('./test.xls')

这里发现:使用这种方法保存为 “.xlsx” 后缀的文件,会无法打开!需要改成老的后缀 “.xls” 才能打开!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值