如何让Python在Excel应用程序打开时更改xlsx文件?

2024-01-03

抱歉,如果我问一个以前可能被问过的问题,但我无法在 Google 和 Stack Overflow 论坛中找到答案。

问题与openpyxl用法,因为它是最方便的库xlsx files.

    import openpyxl

    wb = openpyxl.load_workbook("D:/Python.xlsx")
    sheet = wb.active

    i = 0

    sheet["A1"] = i

    wb.save("D:/Python.xlsx")

但是,它不适用于打开的 Excel 文件。我收到一个错误

    [Errno 13] Permission denied: 'D:/Python.xlsx'

我也发现类似的问题:

在 Komodo 中运行 openpyxl python 脚本时出现 PermissionError [errno 13] https://stackoverflow.com/questions/31147460/permissionerror-errno-13-when-running-openpyxl-python-script-in-komodo

写入打开的 Excel 文档 https://stackoverflow.com/questions/26141114/write-to-an-open-exceldocument

我该如何解决此错误并使 Python 能够处理 Excel 中打开的文件?我当前的版本是Python 2.7。另外,如果可能的话,在中制作相同魔法的解决方案是什么xlsm files?

UPD:

如果第一个问题没有解决方案(也许谷歌文档除外,感谢@Alex),是否可以编写一段代码来执行以下算法: 1. 关闭 Excel 应用程序并保存 2.用python进行计算,并将结果保存在Excel中的某个目的地 3. 在Excel应用程序中打开Excel文件?

我知道怎么做 2。对 1 和 3 有什么想法吗?

UPD2:

xlwings真的做得很棒!正是我所需要的!谢谢!

我想提供一个对我有用的代码(只有其他用户可以在 Google 中找到并使用):

   import xlwings as xl
   import time

   wb = xl.Workbook.active()
   sheet = wb.active

   iter = 10
   i = 0

   while True:
    i += 1
    if i <= iter:
     xl.Range("A1").value = i
     time.sleep(1)
     print(i)
    else:
     break

  wb.save()
  print("Done!")

OpenPyXL 直接对文件进行操作;它与Excel程序无关,并且无法控制Excel程序。因此,如果它尝试修改的文件被 Excel 锁定,则 OpenPyXL 对此无能为力。

这个问题被标记为Excel-VBA /questions/tagged/excel-vba这当然是控制 Excel 程序的一种合适方法(这样您就可以在 Excel 中打开数据时修改数据,或关闭 Excel)。如果您想要使用 Python 的 Excel 接口,目前最好的软件包是xlwings http://xlwings.org/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让Python在Excel应用程序打开时更改xlsx文件? 的相关文章

  • 从 Django 基于类的视图的 form_valid 方法调用特殊(非 HTTP)URL

    如果你这样做的话 有一个 HTML 技巧 a href New SMS Message a 点击新短信打开手机的本机短信应用程序并预 先填写To包含所提供号码的字段 在本例中为 1 408 555 1212 以及body与提供的消息 Hel
  • Excel 中分组经常性 CF 的净现值

    下面是 60 个期间的现金流量表 有一组经常性现金流量 Excel 中是否有一种简单的方法可以计算所有 60 个期间 每月现金流量 的 NPV 而无需创建 60 行的表格并使用 NPV 公式 因此 60 个订单项的公式如下所示 NPV PE
  • 从 Python 将分层 JSON 数据写入 Excel xls?

    我想将一些数据从 python 写入 xlsx 我目前将其存储为 JSON 但它从 Python 中输出什么并不重要 单个文章的 JSON 如下所示 Word Count 50 Key Words Blah blah blah Foo Fr
  • 如何使用 Twython 将 oauth_callback 值传递给 oauth/request_token

    Twitter 最近刚刚强制执行以下规定 1 您必须通过oauth callbackoauth request token 的值 这不是可选的 即使您已经在 dev twitter com 上设置了一个 如果您正在执行带外 OAuth 请通
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • Scapy:如何将新层(802.1q)插入现有数据包?

    我有一个数据包转储 想要将 VLAN 标记 802 1q 标头 注入到数据包中 怎么做 为了找到答案 我查看了Scapy 插入新层和记录问题 https stackoverflow com q 17259592 1381638 这确实很有帮
  • 包含另一个单元格值的条件格式文本的公式

    我有一个 A 列 每个单元格中包含 1 4 个单词的短语 我还有 4 个包含 1 个单词值的单元格 B1 C1 D1 和 E1 我需要设置条件格式 这样 1 如果 A 列单元格中的文本包含与上述单元格之一的值匹配的单词 则以红色突出显示该单
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • 当 vbscript.regexp 工作时,VBA RegExp 会导致编译错误

    我正在为 Outlook 2013 的 VBA 编写一个脚本 它使用正则表达式 我发现的每个示例似乎都使用Set regex New RegExp创建一个正则表达式对象 当我尝试这个时 我得到了编译错误 用户定义类型未定义 我设法使用正则表
  • Django - 使 ModelForm(ImageField 的)仅接受某些类型的图像

    我将 Pillow 2 3 0 与 Django 一起使用 并且在 models py 中有一个 ImageField 如下所示 class UserImages models Model user models ForeignKey Us
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • datetime strftime 不输出正确的时间戳

    下列 gt gt gt from dateutil parser import parse gt gt gt parse 2013 07 02 00 00 00 0000 datetime datetime 2013 7 2 0 0 tzi
  • 如何输入可变的默认参数

    Python 中处理可变默认参数的方法是将它们设置为无 https stackoverflow com a 366430 5049813 例如 def foo bar None bar if bar is None else bar ret
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • scikit-learn kmeans 聚类的初始质心

    如果我已经有一个可以作为初始质心的 numpy 数组 我该如何正确初始化 kmeans 算法 我正在使用 scikit learn Kmeans 类 这个帖子 具有选定初始中心的 k 均值 https stackoverflow com q
  • 以编程方式创建验证列表

    我有一组从外部源进入 VBA 代码的数据 我希望能够分配该数据以用作此工作簿中一张工作表的单元格下拉框中的验证 但是 我不想将该数据复制到工作表中 然后使用命名范围 可能有相当多的数据 而且这感觉不是很有效 我确信一定有办法 但我还没有找到

随机推荐