当前位置: 首页 > 面试题库 >

如何从* .xlsm中提取工作表并将其另存为Python中的* .csv?

司寇羽
2023-03-14
问题内容

我有一个 .xlsm文件,其中有20张纸。我想将几张纸单独保存为 .csv(格式丢失是可以的)。已经尝试过xlrd-
xlwt和win32com库,但无法通过。谁能提供一个使用Python进行上述处理的代码段?我还有其他python依赖项,因此没有其他语言可以使用。谢谢


问题答案:

xlrd在xlsm文件上也应该可以正常工作。我用一个随机的xlsm文件测试了代码,它运行良好。

import csv
import xlrd

workbook = xlrd.open_workbook('test.xlsx')
for sheet in workbook.sheets():
    with open('{}.csv'.format(sheet.name), 'wb') as f:
        writer = csv.writer(f)
        writer.writerows(sheet.row_values(row) for row in range(sheet.nrows))

如果您遇到编码问题,请尝试以下代码:

import csv
import xlrd

workbook = xlrd.open_workbook('test.xlsm')
for sheet in workbook.sheets():
    if sheet.name == "Sheet_name_from_xlsm_file":
        with open('{}.csv'.format(sheet.name), 'wb') as f:
            writer = csv.writer(f)
            for row in range(sheet.nrows):
                out = []
                for cell in sheet.row_values(row):
                    try:
                        out.append(cell.encode('utf8'))
                    except:
                        out.append(cell)
                writer.writerow(out)


 类似资料:
  • 问题内容: 我想编写一个Python脚本,该脚本读取Excel电子表格并将其某些工作表另存为CSV文件。 我怎样才能做到这一点? 我已经找到了用于从Python读取和写入Excel文件的第三方模块,但据我所知,它们只能以Excel(即* .xls)格式保存文件。如果我错了,那么一些示例代码将展示如何使用这些模块进行操作。 我还遇到了一个我不太了解的解决方案,但该解决方案似乎特定于Windows,因

  • 问题内容: 假设您具有以下图像: 现在,我想将每个独立字母提取到单个图像中。目前,我已经恢复了轮廓,然后绘制了一个边框,在这种情况下,是针对角色: 之后,我要提取每个框(在本例中为letter )并将其保存到图像文件中。 预期结果: 到目前为止,这是我的代码: 提前致谢。 问题答案: 以下将给您一封信

  • 我想从中提取表格数据,并另存为 但我得到了一个错误: 文本文件中生成的表格数据看起来与原始链接中的一样:https://coinmarketcap.com/currencies/bitcoin/historical-data/ 任何帮助,请!

  • 问题内容: 我有一个带有源文件路径的字符串和另一个带有destfile路径的字符串,它们都指向Excel工作簿。 我想获取源文件的第一张纸并将其作为新选项卡复制到destfile(与destfile中的位置无关),然后保存它。 在or或or中找不到简单的方法。我想念什么吗? 问题答案: 解决方案1 使用该软件包的仅Python解决方案。仅数据值将被复制。 解决方案2 使用该程序包将复制操作委派给E

  • 问题内容: 所以我想从列表中删除一个项目,并同时将其存储到python中的变量中。我尝试了这样的示例代码: 但事实证明,这实际上并不能正常工作,它提供的是RA NoneType值,而不是删除我想要的并存储它。有没有办法做到这一点? 问题答案: list.remove(x) 从列表中删除值为x的第一项。如果没有这样的项目,那就是错误的。 因此,如文档所述,您将不会获得返回的值。 这可以帮助: 或者,

  • 问题内容: 是否可以从python列表构造NumPy数组? 问题答案: 首先,建议您阅读NumPy的 快速入门教程,该教程可能会帮助您解决这些基本问题。 您可以从列表中直接创建一个数组,如下所示: 或以相同的方式从嵌套列表中获取:

  • 所以我有 1500 个 Excel 工作簿,每个工作簿都有 10 张结构完全相同的工作表。我尝试将多个Excel工作簿合并到一个文件中,并使用以下代码成功: 谢谢,努尔贝克

  • 我正在尝试将PDF文档中的数据提取到工作表中。PDF显示和文本可以手动复制并粘贴到Excel文档中。 我目前正在通过SendKeys执行此操作,但它不起作用。当我尝试从PDF文档中粘贴数据时,我会出错。为什么我的粘贴不起作用?如果我在宏停止运行后粘贴,它会正常粘贴。