如何使用python写入现有的xls文件

对现有的.xls文件的写入问题
现在文件已有带格式的xls文件,写入的数据是我从其他xlsx表使用openpyxl读取的数据,但是目前卡在写入xls文件这里了;
因为这个xls是带宏的,所以无法转成xlsx来写入,只能以xls写入,但是发现xlwt只能创建写入,无法对现有的xls写入;
请问有什么办法可以把数据写入现有的xls表中吗?

这样试试?
from openpyxl import load_workbook
workbook = load_workbook('existing_file.xlsx')
sheet = workbook['Sheet1'] # 替换为实际的工作表名称
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'

workbook.save('existing_file.xlsx')

以下回答参考GPT:
如果你已经有一个带有宏的 xls 文件,并且需要向其中写入数据,可以使用第三方库 xlrdxlwt 来读取和写入 xls 文件。

首先,通过 xlrd 库读取现有 xls 文件的内容,然后用 xlwt 库创建一个新的 WorkBook,并将读取到的内容复制到新的 WorkBook 中。最后,在新的 WorkBook 中写入数据。

下面是一个示例代码:

import xlrd
import xlwt

# 打开现有的 xls 文件
existing_xls = xlrd.open_workbook('existing.xls', formatting_info=True)
# 创建新的 WorkBook
new_wb = xlwt.Workbook()

# 复制现有的 sheets 到新的 WorkBook
for sheet_index in range(existing_xls.nsheets):
    existing_sheet = existing_xls.sheet_by_index(sheet_index)
    new_sheet = new_wb.add_sheet(existing_sheet.name)
    for row in range(existing_sheet.nrows):
        for col in range(existing_sheet.ncols):
            new_sheet.write(row, col, existing_sheet.cell(row, col).value)

# 在新的 WorkBook 中写入数据
data = [['A1', 'B1', 'C1'], ['A2', 'B2', 'C2']]
sheet = new_wb.get_sheet(0)  # 假设需要写入第一个 sheet
for row in range(len(data)):
    for col in range(len(data[row])):
        sheet.write(row, col, data[row][col])

# 保存新的 WorkBook
new_wb.save('new.xls')

注意这个方法使用了 xlrdxlwt 库,需要确保这两个库已经安装。

在上述代码中,首先使用 xlrd 库打开现有的 xls 文件,并设置 formatting_info=True 以保留格式信息。然后,创建一个新的 WorkBook 对象 new_wb。接下来,遍历原始 xls 文件的每个 sheet,将其内容复制到新的 WorkBook 中。最后,在新的 WorkBook 中写入数据,并保存为新的 xls 文件。

请注意这种方法只适用于简单的 xls 文件,可能无法保留复杂的格式和宏。如果需要保留复杂格式和宏,请考虑使用其他库或软件来处理 xls 文件。

【以下回答由 GPT 生成】

我能够为您提供一种使用Python将数据写入现有.xls文件的解决方案。以下是详细的步骤:

  1. 首先,确保您已经安装了openpyxl库和xlrd库。您可以使用以下命令来安装这些库: pip install openpyxl pip install xlrd

  2. 导入所需的模块: python import openpyxl import xlrd

  3. 打开要读取数据的源.xls文件和要写入数据的目标.xls文件: python source_file = xlrd.open_workbook('path_to_source.xls') target_file = openpyxl.load_workbook('path_to_target.xls')

  4. 获取要读取数据的源.xls文件中的工作表名: python sheet_name = source_file.sheet_names()[0] # 假设读取第一个工作表

  5. 获取要读取数据的源.xls文件中的工作表对象: python source_sheet = source_file.sheet_by_name(sheet_name)

  6. 获取目标.xls文件中的工作表对象: python target_sheet = target_file[sheet_name]

  7. 遍历读取源.xls文件中的数据,并将其写入目标.xls文件中的相应单元格: python for row in range(source_sheet.nrows): for col in range(source_sheet.ncols): value = source_sheet.cell_value(row, col) target_sheet.cell(row=row+1, column=col+1, value=value)

  8. 保存目标.xls文件: python target_file.save('path_to_target.xls')

这样,您就可以将数据从一个现有的.xls文件中读取并写入另一个已存在的.xls文件中了。

请注意,由于openpyxl库不支持直接读取.xls文件,我们使用了xlrd库来读取拷贝数据。在运行代码之前,请确保您已经将源.xls文件和目标.xls文件的路径替换为实际的文件路径。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

Spire.XLS for Python支持XLS格式
pip安装命令:

pip install Spire.XLS-for-Python
pip install plum-dispatch==1.7.4

写入现有XLS文档:

from spire.xls import *
from spire.common import *

# 创建Workbook对象
workbook = Workbook()
# 加载XLS文档
workbook.LoadFromFile("示例.xls")
# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 写入数据到工作表的指定单元格
sheet.Range[1, 1].Text = "text"

# 保存结果文档为XLS格式
workbook.SaveToFile("写入.xls", ExcelVersion.Version97to2003)
workbook.Dispose()