对现有的.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 文件,并且需要向其中写入数据,可以使用第三方库 xlrd
和 xlwt
来读取和写入 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')
注意这个方法使用了 xlrd
和 xlwt
库,需要确保这两个库已经安装。
在上述代码中,首先使用 xlrd
库打开现有的 xls 文件,并设置 formatting_info=True
以保留格式信息。然后,创建一个新的 WorkBook 对象 new_wb
。接下来,遍历原始 xls 文件的每个 sheet,将其内容复制到新的 WorkBook 中。最后,在新的 WorkBook 中写入数据,并保存为新的 xls 文件。
请注意这种方法只适用于简单的 xls 文件,可能无法保留复杂的格式和宏。如果需要保留复杂格式和宏,请考虑使用其他库或软件来处理 xls 文件。
【以下回答由 GPT 生成】
我能够为您提供一种使用Python将数据写入现有.xls文件的解决方案。以下是详细的步骤:
首先,确保您已经安装了openpyxl库和xlrd库。您可以使用以下命令来安装这些库: pip install openpyxl pip install xlrd
导入所需的模块: python import openpyxl import xlrd
打开要读取数据的源.xls文件和要写入数据的目标.xls文件: python source_file = xlrd.open_workbook('path_to_source.xls') target_file = openpyxl.load_workbook('path_to_target.xls')
获取要读取数据的源.xls文件中的工作表名: python sheet_name = source_file.sheet_names()[0] # 假设读取第一个工作表
获取要读取数据的源.xls文件中的工作表对象: python source_sheet = source_file.sheet_by_name(sheet_name)
获取目标.xls文件中的工作表对象: python target_sheet = target_file[sheet_name]
遍历读取源.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)
保存目标.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()