Python Excel 模板读取和重写,维护公式和格式

2023-11-21

我已经查遍了所有内容,但似乎找不到我要找的东西。我在这里找到的所有线索对我来说最终都陷入了死胡同。 xlrd、xlwt 和 xlutils 几乎可以满足我的需要,但是......基本思想是我需要使用 Python 将简单数据(字符串)写入 Excel 模板的特定工作表,并将该模板写入新的 .xls 文件。

读取模板、将其复制到新的工作簿对象、写入新值以及写出新的 .xls 文件都没有问题。但是,我找不到维护 Python Excel 模块both公式和格式。

`

our = 'template.xls'

# open up read-only template with formatting maintained
rb = open_workbook(our,formatting_info=True)
r_sheet = rb.sheet_by_index(4)

# copy this to a new workbook object
wb = copy(rb)

# 5th sheet (index = 4) is where we need to drop the data we have
w_sheet = wb.get_sheet(4)

# populate with new data!
for row_index in range(0, r_sheet.nrows):
    w_sheet.write(row_index, 1, "some string that is our data")

# write it!
wb.save('new.xls')

`

在模板中读取时,格式会保持不变(某些颜色略有改变;嗯!),但公式不会,因此“new.xls”在公式曾经存在的地方到处都是空白。

知道如何保持格式和公式吗?

请注意,我被锁定在 Python 2.7 中。


您可以使用openpyxl为此 - 它仅支持 xlsx (及相关格式),而不支持 xls (旧的 Excel 格式)。

https://pypi.python.org/pypi/openpyxl/

http://openpyxl.readthedocs.org/en/latest/

https://bitbucket.org/openpyxl/openpyxl/src/2.2/doc/source/index.rst

当您打开/保存 Excel 工作表时,此包会保留公式。它还确实保留了格式,但存在一些小问题。但原始 Excel 文件中的图像不会保留。

其他很酷的功能包括对条件格式、图表、迷你图等的支持。

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

Python Excel 模板读取和重写,维护公式和格式 的相关文章

随机推荐

  • 卸载动态库需要两次 dlclose() 调用?

    我有一个动态库 我使用它加载dlopen 然后使用卸载dlclose 如果我不包含任何目标 C 代码dlopen 需要一个dlclose 调用这是预期的行为 但是当我包含任何目标 c 代码作为目标时 我遇到的问题是我需要做两件事dlclos
  • 无法在 Eclipse 中创建新的 FXML 文件

    当我尝试在 Eclipse 中创建一个新的 FXML 文件 文件 gt 新建 gt 其他 gt JavaFX 新的 FXML 文档 gt 下一步 时 什么也没有发生 它不创建文件 当我尝试创建 FXGraph 或 JavaFX HTML 模
  • 使用.NET Core从Azure表存储中检索前n条记录

    是否可以使用 C 从 Azure 表存储中检索前 n 条记录 我正在使用 NET Core 如果我也能得到一些参考资料那就太好了 请注意 我的所有实体都是使用 Log Tail 模式存储的https learn microsoft com
  • 我使用了 matplotlib,但图形中出现了错误消息“

    import matplotlib pyplot as plt from matplotlib import font manager rc f name font manager FontProperties fname C Window
  • C++中map的初值假设

    我正在初始化地图map
  • Pandas/Numpy NaN 无比较

    Python Pandas 和 Numpy 中 为什么比较结果不同 from pandas import Series from numpy import NaN NaN不等于NaN gt gt gt NaN NaN False but N
  • 如何将我的 Node.js 客户端连接限制为 2 个?

    我基本上试图只允许 2 个客户端同时连接到该应用程序 我应该如何处理这个问题 这是我的服务器代码 var express require express app express server require http createServe
  • LabelEncoder 将缺失值保留为“NaN”

    我正在尝试使用标签编码器将分类数据转换为数值 我需要一个 LabelEncoder 将缺失值保留为 NaN 以便之后使用 Imputer 所以我想在像这样标记后使用掩码来替换原始数据框 df pd DataFrame A x np NaN
  • NSOpenPanel 作为工作表

    我环顾四周的其他答案 但似乎没有什么可以帮助我的情况 我有一个 viewController 类 其中包含按钮的 IBAction 此按钮应该从该 viewController 打开一个 NSOpenPanel 作为工作表 class Vi
  • Angular 在父组件嵌套表单中使用子组件表单

    将子组件表单放入父组件表单的最佳方法是什么 我们使用的是2019年最新的Angular 8 经过研究 以下方法并不完全有效 父组件 ngOnInit this parentForm this fb group childForm1 etc
  • 我可以在过程中传递游标吗?

    我可以在过程中传递游标吗 CURSOR BLT CURSOR IS SELECT BLT sol id BLT bill id BLT bank id FROM BLT 是我的光标 Procedure abc i want to pass
  • 括号组合的时间复杂度

    我尝试做经典问题来实现一种算法来打印 n 对括号的所有有效组合 我找到了这个程序 效果很好 public static void addParen ArrayList
  • 您可以在网页上将图片相互叠加吗?

    我想建立一个 装扮 游戏网站 您可以单击不同的配件 它们将彼此叠加 因为描述起来有点困难 我找到了这些例子 希望能够突出我正在尝试做的事情 这是我找到的最接近的网站 但我似乎找不到计算图像应如何彼此重叠的代码 类似于这个 iOS 公主游戏
  • 在 Maven 中测试 Clojure

    我是 Maven 的新手 甚至是 Clojure 的新手 作为学习语言的练习 我正在编写一个蜘蛛纸牌播放器程序 我还计划在 Scala 中编写一个类似的程序来比较实现 请参阅我的帖子https stackoverflow com quest
  • ggplot - 按函数输出分面

    我不确定如何通过数据中的函数进行分面data的元素ggplot目的 在下面的玩具示例中 我想做的是这样的 df lt data frame x 1 8 y runif 8 z 8 1 ggplot df aes x x y y geom p
  • 使用 SQL Server XML 数据类型

    我有一个包含 XML 字段的表 它包含的典型 XML 是
  • 如何将 Nuget 包 dll 添加到 Wix 安装程序

    如何将 Nuget 包 dll 添加到 Wix 安装程序 我尝试添加
  • Android:从电话号码中检索联系人姓名

    我想检索与来电号码关联的联系人姓名 当我处理广播接收器中的传入号码时 具有带有来电呼叫者姓名的字符串将极大地帮助我的项目 我认为这涉及使用 sql WHERE 子句作为过滤器的查询 但我需要对联系人进行排序吗 一个例子或提示会有很大的帮助
  • 如何在android中的其他视图上添加覆盖视图?

    我想将按钮放在图像视图上方 我怎样才能做到这一点 请不要提供设置背景 因为我需要 ImageView 设置为背景 开玩笑 你需要的是把你的观点放在一个RelativeLayout 类似的东西会起作用
  • Python Excel 模板读取和重写,维护公式和格式

    我已经查遍了所有内容 但似乎找不到我要找的东西 我在这里找到的所有线索对我来说最终都陷入了死胡同 xlrd xlwt 和 xlutils 几乎可以满足我的需要 但是 基本思想是我需要使用 Python 将简单数据 字符串 写入 Excel