在 Python 中将 Excel 工作表从一个工作表复制到另一个工作表

2023-12-03

我想做的就是用 Python 将工作表从 Excel 工作簿复制到另一个 Excel 工作簿。

我想保留所有格式(彩色单元格、表格等)

我有许多 Excel 文件,我想将所有文件中的第一张工作表复制到一个工作簿中。如果对任何单个工作簿进行更改,我还希望能够更新主工作簿。

它是一个代码块,每隔几个小时运行一次并更新主电子表格。

我尝试过 pandas,但它不维护格式和表格。

我尝试过 openpyxl 没有成功

我认为下面的 xlwings 代码可以工作:

import xlwings as xw

wb = xw.Book('individual_files\\file1.xlsx')
sht = wb.sheets[0]
new_wb = xw.Book('Master Spreadsheet.xlsx')
new_wb.sheets["Sheet1"] = sht

但我刚刚收到错误:

----> 4 new_wb.sheets["Sheet1"] = sht

AttributeError: __setitem__

上面的“file1.xlsx”是第一个 Excel 文件的示例。

“Master Spreadsheet.xlsx”是我的主电子表格,包含所有单独的文件。


最后我这样做了:

def copyExcelSheet(sheetName):

read_from = load_workbook(item)
#open(destination, 'wb').write(open(source, 'rb').read())
read_sheet = read_from.active
write_to = load_workbook("Master file.xlsx")
write_sheet = write_to[sheetName]

for row in read_sheet.rows:
    for cell in row:
        new_cell = write_sheet.cell(row=cell.row, column=cell.column,
                value= cell.value)
        write_sheet.column_dimensions[get_column_letter(cell.column)].width = read_sheet.column_dimensions[get_column_letter(cell.column)].width
        if cell.has_style:
            new_cell.font = copy(cell.font)
            new_cell.border = copy(cell.border)
            new_cell.fill = copy(cell.fill)
            new_cell.number_format = copy(cell.number_format)
            new_cell.protection = copy(cell.protection)
            new_cell.alignment = copy(cell.alignment)

write_sheet.merge_cells('C8:G8')
write_sheet.merge_cells('K8:P8')
write_sheet.merge_cells('R8:S8')

write_sheet.add_table(newTable("table1","C10:G76","TableStyleLight8"))
write_sheet.add_table(newTable("table2","K10:P59","TableStyleLight9"))

write_to.save('Master file.xlsx')
read_from.close

用它来检查工作表是否已经存在:

#checks if sheet already exists and updates sheet if it does.
def checkExists(sheetName):
    book = load_workbook("Master file.xlsx")   # open an Excel file and return a workbook

    if sheetName in book.sheetnames:
        print ("Removing sheet",sheetName)
        del book[sheetName]
    else:
        print ("No sheet ",sheetName," found, will create sheet")

    book.create_sheet(sheetName)
    book.save('Master file.xlsx')

用它来创建新表:

def newTable(tableName,ref,styleName):
    tableName = tableName + ''.join(random.choices(string.ascii_uppercase + string.digits + string.ascii_lowercase, k=15))
    tab = Table(displayName=tableName, ref=ref)
    # Add a default style with striped rows and banded columns
    tab.tableStyleInfo = TableStyleInfo(name=styleName, showFirstColumn=False,showLastColumn=False, showRowStripes=True, showColumnStripes=True)
    return tab
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中将 Excel 工作表从一个工作表复制到另一个工作表 的相关文章

  • 如何 json_normalize() df 中的特定字段并保留其他列? [复制]

    这个问题在这里已经有答案了 这是我的简单示例 我的实际数据集中的 json 字段非常嵌套 因此我一次解压一层 我需要在 json normalize 之后保留数据集上的某些列 https pandas pydata org docs ref
  • 为什么方法无法访问类变量?

    我试图理解Python中的变量作用域 除了我不明白为什么类变量不能从其方法访问的部分之外 大多数事情对我来说都很清楚 在下面的例子中mydef1 无法访问a 但如果a可以在全局范围 类定义之外 声明 class MyClass1 a 25
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • 如何在算术表达式的结果上添加 SQLAlchemy 标签?

    我如何将这样的东西翻译成 SQLAlchemy select x y as difference 我知道该怎么做 x label foo 但我不确定在哪里放置下面的 label 方法调用 select table c x table c y
  • 检查所选单元格是否在特定范围内

    我正在使用 C 创建 Excel 加载项 如何检查选定的 或代码中范围表示的单元格 是否在特定范围内 例如如何检查单元格 P 5 是否在 A 1 Z 10 范围内 Use Application Intersect 像这样 在VBA中 Su
  • 返回不包括指定键的字典副本

    我想创建一个函数 返回字典的副本 不包括列表中指定的键 考虑这本词典 my dict keyA 1 keyB 2 keyC 3 致电without keys my dict keyB keyC 应该返回 keyA 1 我想用一行简洁的字典理
  • multiprocessing.freeze_support()

    为什么多处理模块需要调用特定的function http docs python org dev library multiprocessing html multiprocessing freeze support在被 冻结 以生成 Wi
  • 在python中调用subprocess.Popen时“系统找不到指定的文件”

    我正在尝试使用svnmerge py合并一些文件 它在底层使用 python 当我使用它时 我收到一个错误 系统找不到指定的文件 工作中的同事正在运行相同版本的svnmerge py 以及 python 2 5 2 特别是 r252 609
  • Python 相当于 Bit Twiddling Hacks 中的 C 代码?

    我有一个位计数方法 我正在尝试尽可能快地实现 我想尝试下面的算法位摆弄黑客 http graphics stanford edu seander bithacks html CountBitsSetParallel 但我不知道 C 什么是
  • 如何解码 dtype=numpy.string_ 的 numpy 数组?

    我需要使用 Python 3 解码按以下方式编码的字符串 gt gt gt s numpy asarray numpy string hello nworld gt gt gt s array b hello nworld dtype S1
  • 如何在 Keras 中使用部分输入进行训练,其余部分用于损失函数

    我是 Keras 新手 正在尝试实现神经网络机器学习模型 输入张量看起来像 X1 X2 和输出 Y 注意 X1 和 X2 是相关的 在模型中 只有 X1 将用于训练 但 X1 和 X2 都将传递给损失函数 该损失函数是 X1 X2 y pr
  • 别碰我的女人

    我讨厌的一件事迪斯图尔斯 http docs python org distutils 我猜他是邪恶的人 他这样做了 https github com python cpython blob 300dd552b15825abfe0e367a
  • 在 Python 中,如何获取特定文件中定义的类列表?

    如果一个文件myfile py包含 class A object Some implementation class B object Some implementation 我如何定义一个方法 以便在给定的情况下myfile py 它返回
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • 将参数传递给 __enter__

    刚刚学习 with 语句尤其是这篇文章 http effbot org zone python with statement htm 问题是 我可以传递一个参数给 enter 我有这样的代码 class clippy runner def
  • 从 Apache 运行 python 脚本的最简单方法

    我花了很长时间试图弄清楚这一点 我基本上正在尝试开发一个网站 当用户单击特定按钮时 我必须在其中执行 python 脚本 在研究了 Stack Overflow 和 Google 之后 我需要配置 Apache 以便能够运行 CGI 脚本
  • 向伪 shell (pty) 发出命令

    我尝试使用 subprocess popen os spawn 来运行进程 但似乎需要伪终端 import pty master slave pty openpty os write master ls l 应该发送 ls l 到从属终端
  • DRF:以编程方式从 TextChoices 字段获取默认选择

    我们的网站是 Vue 前端 DRF 后端 在一个serializer validate 方法 我需要以编程方式确定哪个选项TextChoices类已被指定为模型字段的默认值 TextChoices 类 缩写示例 class PaymentM
  • Melt() 函数复制数据集

    我有一个这样的表 id name doggo floofer puppo pupper 1 rowa NaN NaN NaN NaN 2 ray NaN NaN NaN NaN 3 emma NaN NaN NaN pupper 4 sop
  • 获取运行云功能的运行时服务帐户

    有没有办法以编程方式从云功能获取运行时服务帐户的电子邮件 我知道我可以 猜测 默认的 App Engine 帐户 因为它始终是 appspot gserviceaccount com 但这不是我想要的 我本来期待有一些环境变量 https

随机推荐

  • 如何通过 SSH 连接到 colima 实例

    查找 SSH 所需的步骤colima 这太新了 文档有点匮乏 我需要复制卷并运行scp看起来很理想 最快的答案 colima ssh 使用快速回答ssh tmpconfig mktemp limactl show ssh format co
  • 旋转 UIButton

    我一直在尝试使用以下方法旋转按钮 IBAction rotate id sender CGPoint pencilCenter pencil center pencil setCenter pencilCenter CGFloat floa
  • Java/Mongodb 身份验证

    我看到很多教程展示了如何使用 Java 在 mongodb 中进行身份验证 我的 mongodb 配置为启用身份验证 在控制台中我使用 使用管理员 db auth myUser newPassword 并且运行良好 在java中 在访问的每
  • 按组的平均值划分数据列

    如果我有一个数据框 例如 group rep 1 4 each 10 data c seq 1 10 1 seq 5 50 5 seq 20 11 1 seq 0 3 3 0 3 DF data frame group data 现在 我想
  • 检测 PHP 变量不足:FALSE、NULL、unset()、empty()?

    定义 PHP 中不存在某个值或不足以满足应用程序需求的最佳方法是什么 var NULL var array var FALSE 最好的测试方法是什么 isset var empty var if var NULL if var 将变量初始化
  • System.in.read实际返回什么?

    什么是 System in read 返回 这文档 says 返回 数据的下一个字节 如果到达流末尾则为 1 49是字符的 ASCII 值1 它是第一个字节的值 The stream of bytes that is produced wh
  • 如何使用 Android 从 Firebase 数据库获取嵌套子项?

    我想从这种类型的 JSON 树中获取所有允许的子项的列表 databaseRef child Users child Allowded addValueEventListener new ValueEventListener Overrid
  • Django 测试:查看创建错误响应的回溯

    该模式来自 django 文档 class SimpleTest unittest TestCase def test details self client Client response client get customer deta
  • Swift - 委托协议结构

    请原谅我对 Swift 还很陌生 我想创建一个用于 POST 请求并从服务器获取响应的委托 然后将从服务器返回的参数传递给 func 并允许我的主类做出相应的响应 下面是我的代表和我的主要课程 它没有打印 LoginViewControll
  • 使用 GoogleCloudMessaging 替换 GCMBaseIntentService

    我是 Android 开发新手 我不得不将我的第一个项目从 Eclipse 切换到 Android Studio 发现库 GCMBaseIntentService 不再受支持 我找到了 GoogleCloudMessaging 但完全不知道
  • 如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?

    我们的一位客户购买通配符 SSL 证书 example com 来自 GoDaddy 他只是简单下载 没有提供 CSR 数据 该 zip 文件中有 3 个文件 那些是fce4f111a61ea3f4 crt gd bundle g2 g1
  • 访问从模板类派生的类中的基成员函数[重复]

    这个问题在这里已经有答案了 我正在工作中开发一个库 并且设计了一个复杂的继承 其中包括模板类并从中派生 我的问题是基模板类具有虚拟重载运算符 它接受 2 个参数并返回一些值 在基类中实现了此运算符 并且大多数派生类没有重新实现此运算符 其他
  • React ReduxReducer:“this.props.tasks.map不是函数”错误

    我正在制作一个 React Redux 示例 但是 我遇到了一个问题并收到以下错误 类型错误 this props tasks map 不是函数 了解更多 我尝试了很多事情 但我似乎无法理解为什么这不起作用 我相信这是 allReducer
  • 从堆栈中删除 ViewController

    在我们的应用程序中 我们有一个登录ViewController A 用户登录时 会自动调用请求导航以导航到下一个ViewController B 然而 完成后我们想要删除登录ViewController A从堆栈中 因此用户无法 返回 到登
  • 在 pebble js 文件中包含外部 javascript 库?

    有什么方法可以在我的 pebble 代码中包含外部 JS 库吗 按照惯例 在网页上我会在我的 head 标签中执行此操作 但在 pebble 中 我无法做到这一点 因为我只使用 JS 那么我怎样才能包含 JavaScript 文件的外部库呢
  • require() 不适用于变量 - React Native

    我遇到一个奇怪的问题 如果我直接设置一个变量 其值类似于 const myString someWord 可以 但是如果我从像 const myString someVariable 这样的变量中获取值 则不起作用 并且如果我在条件块上设置
  • 而在Lua中,它是如何处理的呢?

    我在一个中看到了这段代码Lua 风格指南 print x yes and YES or x Context local function test x print x yes and YES or x rather than if x ye
  • 使用 Boost 库生成的 UUID 与 Java 的唯一性

    我组织的一个 Android 应用程序需要在每个用户首 次启动该应用程序时为其分配一个 UUID 版本 4 目前我们使用 Boost 库 1 58 0 用于此目的 我们的 Android 应用程序将使用 JNI 运行以下代码生成 UUIDv
  • vector::erase() 未按预期工作

    for it1 prime begin it1
  • 在 Python 中将 Excel 工作表从一个工作表复制到另一个工作表

    我想做的就是用 Python 将工作表从 Excel 工作簿复制到另一个 Excel 工作簿 我想保留所有格式 彩色单元格 表格等 我有许多 Excel 文件 我想将所有文件中的第一张工作表复制到一个工作簿中 如果对任何单个工作簿进行更改