将包含多个工作表的 xlsx 文件转换为多个 xlsx 文件

2024-02-23

我有一个包含多个工作表的 .xlsx 文件,我想将所有工作表拆分为不同的 .xlsx 文件。 例如,我有一个文件 matt.xlsx,它有 5 张纸,名称分别为 A、B、C、D、E。我想将它们分成 5 个文件,命名为 a.xlsx、b.xlsx、c.xlsx、d.xlsx 和 e.xlsx。

我编写的代码如下,但它不会向拆分文件写入任何内容,并且当我尝试打开它们时出现错误,提示“文件格式不匹配”

import os
import csv
from openpyxl import load_workbook
import pandas as pd


def main():

# read wbook from xlsx, 
filepath = os.path.join(os.getcwd())
wb = load_workbook(filename='matt.xlsx')
dest_dir = os.path.join('desktop','new files')
os.makedirs(dest_dir, exist_ok=True)

# loop the sheet
for sheet in wb.worksheets:
    sheet_names = sheet.title.split(" ")
    sheet_names = [x.lower() for x in sheet_names]

    dest_path = os.path.join(dest_dir, sheet_names.xlsx')

    with open(dest_path, 'w') as f:
        writer = pd.ExcelWriter(f, engine='xlsxwriter')
        reader = sheet.rows
        next(reader, None)

先感谢您。我是一个使用 python 的初学者,如果有人能提供帮助,我将不胜感激。


我修改了你的一些代码。您可以在不使用 pandas 的情况下完成此操作。在浏览了一些之后openpyxl 文档 https://openpyxl.readthedocs.io/en/stable/tutorial.html#看起来下面的代码可能是您想要做的事情的起点。

这会将工作表的值复制到新工作簿,但不复制任何格式等。

看看下面的代码是否是您想要做的事情的起点。

from openpyxl import load_workbook, Workbook

wb = load_workbook(filename='matt.xlsx')

for sheet in wb.worksheets:
    new_wb = Workbook()
    ws = new_wb.active
    for row_data in sheet.iter_rows():
        for row_cell in row_data:
            ws[row_cell.coordinate].value = row_cell.value

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

将包含多个工作表的 xlsx 文件转换为多个 xlsx 文件 的相关文章

随机推荐

  • 删除加权有向图中的循环

    这是我其他帖子的后续问题 具有大小约束的聚类算法 https stackoverflow com questions 30112428 algorithm for clustering with size constraints 我正在研究
  • sscanf() 的更安全但易于使用且灵活的 C++ 替代方案

    当我需要从一堆字符串中扫描值时 我经常发现自己又回到了 C 语言sscanf 严格来说是因为它的简单性和易用性 例如 我可以非常简洁地从字符串中提取几个双精度值 string str double val1 val2 if sscanf s
  • 无法重新声明类 sfconfig

    我在 Windows XP 上运行 Symfony 1 2 9 和 PHP 版本 5 2 11 我安装了 APC 版本 3 0 19 我可以运行 PHP 脚本来证明 apc 工作正常 有效 但是 当我尝试在 symfony 操作中使用 AP
  • jQuery 使用 :not 从 div 中选择文本

    我做了一个小提琴 http jsfiddle net hAzJq http jsfiddle net hAzJq 如何选择 div 内的文本而不是 span 内的文本 alert div not span text Use contents
  • 从ansible中注册的变量中检索键的值

    我正在编写各种剧本 用于在 AWS 中配置用户 组 策略等 目前 我正在尝试编写一个任务 从给定的 AWS IAM 账户中删除所有访问密钥 要使用 ansible 中的 iam 模块正确执行此操作 您必须指定要禁用的 AWS 访问密钥 该脚
  • jquery 只捕获第一个按键?

    我有这个代码 j regfname keypress function alert Handler for keypress called 并且只想执行一次 或仅在第一次按键时执行 最理想的方法是什么 您可以使用 jQueryone htt
  • 快速将字符串转换为 CLLocationCooperative2D

    使用 Firebase 作为后端 我有一系列纬度和经度坐标字符串 如何将它们转换为 CLLocationCooperative2D 以便我可以将它们用于注释 这是每次更新时从 Firebase 获取信息的代码 var UpdateRef F
  • Cucumber + Capybara + Selenium:选择文本

    我正在对文本编辑器进行更改 并且需要能够选择文本以使用 JavaScript 对其进行操作 如何使用 Cucumber Capybara 和 Selenium 选择文本 我发现了另一个 stackoverflow 问题 讨论如何使用 Jav
  • 如何将自定义 python 与现有包一起使用 - nix 派生?

    我定义了一个带有未合并补丁的自定义 nix cpython 派生 如果我将其指定为目标 nix shell 就会得到我期望的版本 pkgs import
  • 从 R 控制台窗口相当于 wget

    你好 我想知道 Windows 中 wget 的等价物是什么 我目前在 R 中有一个函数 其中包含命令 system wget www random url com file 从运行 R 的 mac unix 机器上从互联网下载文件 Win
  • VSCode:用于修改用户设置的键盘快捷键

    我喜欢 CodeLens 的想法 它是 VSCode 的插件 可以告诉您所有函数和变量的引用计数 然而 当我扫描代码时 为包含 X 引用 行而添加的额外垂直边距让我很恼火 以至于我将其禁用 这很遗憾 因为这是有用的信息 我希望能够通过键盘快
  • 如何让 docker run 继承 ulimits

    通过 docker 运行命令似乎不符合我当前的配置ulimits ulimit t 5 sudo bash c ulimit t 5 sudo docker run rm debian wheezy bash c ulimit t unli
  • 以编程方式禁用在 Intranet 中运行并呈现 .xhtml 页面的站点的 IE-8 兼容模式

    我有一个 JSF 应用程序 其 xhtml 页面在 Intranet 中运行 我尝试删除默认元标记并添加元标记 但没有用 这个解决方案是否仅适用于纯 html 页面 或者是否有任何其他方法可以使用它以编程方式禁用兼容模式 如果您想阻止所有
  • 如何获取Docker桌面虚拟机的IP地址?

    我在一个团队中 我们中的一些人使用 docker 工具箱 一些用户使用 docker 桌面 我们正在编写一个需要与开发中的 docker 容器进行通信的应用程序 在 docker 工具箱上 我知道 docker machine env 命令
  • 上传 Base64 图像 Facebook Graph API

    我正在尝试使用 Node js 将 Base64 图像上传到 FaceBook 页面 如果我从文件系统读取文件 即使用 fs readFileSync c a jpg 我已经设法使上传能够处理所有多部分数据等 但是 如果我使用 base64
  • 为什么 ("foo" === new String("foo")) 在 JavaScript 中计算结果为 false?

    我本来打算在比较字符串值时一直使用 三重等于 严格比较 但现在我发现 foo new String foo 是错误的 与此相同 var f foo g new String foo f g false 当然 f g true 那么是否建议始
  • 如何在一个单元格中包含 python 代码和 markdown

    jupyter笔记本可以支持markdown单元格或verse Visa中的内联python代码 关节炎计算 或绘制图形 在一个单元格中同时包含 Python 代码和 Markdown from IPython display import
  • angularjs / 渲染内联或使用 ng-include 之间的性能差异

    我可以使用 ng include 将部分包含在角度视图中 或者我可以使用服务器端部分在服务器上执行此操作 我正在考虑使用服务器端部分而不是角度部分 然后使用 ng include 使用脚本标记 因为我在某处读到角度部分创建新范围 这可能会损
  • 从 C 源代码调用汇编例程

    我有这个简单的 C 源代码 include
  • 将包含多个工作表的 xlsx 文件转换为多个 xlsx 文件

    我有一个包含多个工作表的 xlsx 文件 我想将所有工作表拆分为不同的 xlsx 文件 例如 我有一个文件 matt xlsx 它有 5 张纸 名称分别为 A B C D E 我想将它们分成 5 个文件 命名为 a xlsx b xlsx