Python - excel:写入多个单元格需要时间

2024-02-09

我正在使用 win32com.client 将数据写入 Excel 文件。 这花费了太多时间(下面的代码模拟了我想要更新 Excel 的数据量,大约需要 2 秒)。

有没有一种方法可以在一次调用中更新多个单元格(具有不同的值),而不是一个一个地填充它们?或者也许使用更有效的不同方法?

我正在使用 python 2.7 和 Office 2010。

这是代码:

from win32com.client import Dispatch

xlsApp   = Dispatch('Excel.Application')
xlsApp.Workbooks.Add()
xlsApp.Visible  = True
workSheet = xlsApp.Worksheets(1)

for i in range(300):
    for j in range(20):
        workSheet.Cells(i+1,j+1).Value = (i+10000)*j

一些建议:

ScreenUpdating关闭,手动计算

请尝试以下操作:

xlsApp.ScreenUpdating = False
xlsApp.Calculation = -4135 # manual
try:
    #
    worksheet = ...
    for i in range(...):
    # 
finally:
    xlsApp.ScreenUpdating = True
    xlsApp.Calculation = -4105 # automatic

一次分配多个单元格

使用 VBA,您可以将范围的值设置为数组。一次设置多个值可能会更快:

' VBA code
ActiveSheet.Range("A1:D1").Value = Array(1, 2, 3, 4)

我从来没有用Python尝试过,我建议你尝试如下:

worksheet.Range("A1:D1").Value = [1, 2, 3, 4]

不同的方法

考虑使用openpyxl https://bitbucket.org/ericgazoni/openpyxl/wiki/Home or xlwt http://pypi.python.org/pypi/xlwt。 Openpyxls 可让您创建.xlsx文件,无需安装 Excel。 Xlwt 做同样的事情.xls files.

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

Python - excel:写入多个单元格需要时间 的相关文章

  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • 替换字符串变量中的多个字符 (VBA)

    如何替换字符串变量中的多个内容 这是我在 VBA 中的示例函数 Private Function ExampleFunc ByVal unitNr As String If InStr unitNr OE gt 0 Then unitNr
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数

随机推荐

  • 浮点数学有问题吗?

    考虑以下代码 0 1 0 2 0 3 gt false 0 1 0 2 gt 0 30000000000000004 为什么会出现这些不准确的情况 Binary 浮点 https en wikipedia org wiki Double p
  • 使用 Hive 中的 Month() 获取 MM 中的月份

    Select from concat YEAR DATE SUB MAX Column name 60 MONTH DATE SUB MAX Column name 60 01 The month 仅产生single九月之前的月份数字 即一
  • clang-format AlignAfterOpenBracket 列表参数

    这个帖子 https stackoverflow com questions 21966530 clang format always break if params dont fit问了一个类似的问题 当参数太多时如何修改格式 我非常喜欢
  • 如何解释 Devel::Leak 的输出

    我已经跑了Devel Leak http search cpan org ni s Devel Leak 0 03 Leak pm在我的程序中 我不明白它给我的输出 首先 我看到它正在打印一个指针列表 我可以在数组中获取该列表吗 然后我可以
  • 如何检查 IP 地址是否在特定子网内

    我有一个格式为 10 132 0 0 20 的子网和来自 ASP Net 请求对象的 IP 地址 是否有 NET 框架函数可以检查 IP 地址是否在给定子网内 如果不能的话 怎么办呢 位操作 我猜 看一眼使用 C 计算 IP 地址 http
  • 如何让“page-break-inside:void”与“flex-wrap:wrap”很好地配合

    我想得到page break inside avoid以使用多行 Flexbox 布局的形式工作 使用flex wrap wrap 目的只是为了避免打印时破坏表单问题 这适用于单行 Flexbox 或不使用 Flexbox 查看打印预览ht
  • 如何调用或重新启动MathJax?

    我需要 MathJax 重新检查我的所有页面 我的意思是 当页面创建后 一切都很棒 但我需要在 window onload 之后调用它来重新解析页面 因为其内容同时发生了变化 我该怎么做这样的事呢 See http docs mathjax
  • Spring依赖注入:注入接口的所有实例

    如果可能的话 如何使用实现特定接口的所有其他 Spring bean 集合来配置 Spring bean 示例 我想连接CarFactory带有实现以下功能的 bean 列表的 beanCarManufacturer界面 Inject pr
  • 如何从 SwiftUI 中的函数返回按钮?

    我需要根据一些参数动态创建一个按钮 func buildButton parameter Parameter gt Button switch parameter case Parameter Value1 return Button ac
  • Bootstrap 4 轮播不起作用?

    我有以下 BS4 轮播代码 使用本教程制作的 但是代码不起作用 显示了第一张图像 但我不知道出于什么原因轮播不受控制 并且在任何情况下都不会转到下一张图像 可能的解决方案是什么 div class container div class r
  • nm 输出中的“_GLOBAL__sub_I_”是什么意思?

    当我尝试解决静态链接中的问题时 我遇到了一些问题 GLOBAL sub I 符号名称前面的前缀 尽管我使用过 但它以这种形式出现nm demangle C 我偶然发现了这个答案 如何找到全局静态初始化 https stackoverflow
  • Docker 名称解析暂时失败 [Errno -3]

    我正在关注码头工人教程 https docs docker com get started part2 我必须使用以下方法构建应用程序 docker build t friendlyhello 它到达第 4 步 暂停后我收到此错误 Step
  • Node.js 中 require 的正确方法是什么?

    我刚刚开始使用 Node js 和 Electron 并且在文档和示例代码中都看到了有关如何请求模块的各种方法 具体来说 我正在尝试遵循this https medium com developers writing building a
  • 如何获取 ASP.NET MVC 中 HttpResponse 的引用?

    我正在调用一个第三方库 它需要System Web HttpResponse 我看到我有一个HttpResponseBase 但不是HttpResponse就像网络表单一样 有没有办法获得HttpResponse Using MVC 3 E
  • 为什么 Manifest 被弃用了?什么时候应该使用 ClassTag,什么时候应该使用 TypeTag

    我有几个问题Manifest and TypeTag 据我了解 JVM 不了解泛型并删除类型 所以我不能这样做 def factoryForAll T new T will not compile Runtime doesn t know
  • 如何按多个 T.attributes 对 List 进行排序?

    假设我有一个歌曲列表 Song public string Name public int PlayOrder 0 现在我想首先按播放顺序对它们进行排序 从零开始 然后按名称字母顺序对它们进行排序 因此 排序结果的示例集将是 名称 播放顺序
  • 多个应用程序窗口激活无法正常工作

    我有一个 Delphi 应用程序 它以文档浏览器作为主窗体 当用户打开文档时 我们打开一个编辑器窗口 我们希望每个编辑器的任务栏以及主窗体上都有一个按钮 我已经应用了普通代码来执行此操作 如下 但是当我在使用编辑器窗口后单击主窗体时 编辑器
  • 如何获取 Rails 表单或 field_for 块内的底层对象?

    我无法弄清楚如何获取 form for 或 field for 块中的底层对象 我想做的是这样的 和 children 是一个多态 has many 关联 建议 这不就是
  • 带 lambda 表达式的起订量?

    我正在尝试使用 Moq 4 0 10827 在 NuGet 上 测试应用程序服务 并且需要查询存储库 public class MyService Repository
  • Python - excel:写入多个单元格需要时间

    我正在使用 win32com client 将数据写入 Excel 文件 这花费了太多时间 下面的代码模拟了我想要更新 Excel 的数据量 大约需要 2 秒 有没有一种方法可以在一次调用中更新多个单元格 具有不同的值 而不是一个一个地填充