Excel表格读取A2,A3...的数据保存到另外一个Excel表格中
时间: 2024-03-11 18:51:33 浏览: 138
您好!可以使用Python中的openpyxl模块读取、写入Excel表格数据。以下是一个示例代码,可以读取源Excel表格中A2、A3等单元格数据,并将其写入目标Excel表格中。
```python
import openpyxl
# 打开源Excel表格
src_wb = openpyxl.load_workbook('source.xlsx')
# 打开目标Excel表格
dst_wb = openpyxl.load_workbook('destination.xlsx')
# 获取源Excel表格中的第一个工作表
src_ws = src_wb.active
# 获取目标Excel表格中的第一个工作表
dst_ws = dst_wb.active
# 循环读取A2、A3等单元格数据,并写入到目标Excel表格中
for i in range(2, src_ws.max_row + 1):
cell_value = src_ws.cell(row=i, column=1).value
dst_ws.cell(row=i-1, column=1).value = cell_value
# 保存目标Excel表格
dst_wb.save('destination.xlsx')
```
需要注意的是,源Excel表格中的数据必须从第二行开始,否则会出现读取错误。同时,如果目标Excel表格中已经存在数据,则新写入的数据会覆盖原有数据。
相关问题
用xlrd 库实现:# 打开源Excel表格 src_wb = openpyxl.load_workbook('花名册批量添加模板.xls') # 打开目标Excel表格 dst_wb = openpyxl.load_workbook('花名册批量更新模板.xls') # 获取源Excel表格中的第一个工作表 src_ws = src_wb.active # 获取目标Excel表格中的第一个工作表 dst_ws = dst_wb.active # 循环读取A2、A3等单元格数据,并写入到目标Excel表格中 for i in range(2, src_ws.max_row + 1): cell_value = src_ws.cell(row=i, column=1).value dst_ws.cell(row=i - 1, column=1).value = cell_value # 保存目标Excel表格 dst_wb.save('花名册批量更新模板.xls')
使用 xlrd 库实现该代码可以参考以下代码:
```
import xlrd
import openpyxl
# 打开源Excel表格
src_wb = xlrd.open_workbook('花名册批量添加模板.xls')
# 打开目标Excel表格
dst_wb = openpyxl.load_workbook('花名册批量更新模板.xls')
# 获取源Excel表格中的第一个工作表
src_ws = src_wb.sheet_by_index(0)
# 获取目标Excel表格中的第一个工作表
dst_ws = dst_wb.active
# 循环读取A2、A3等单元格数据,并写入到目标Excel表格中
for i in range(1, src_ws.nrows):
cell_value = src_ws.cell_value(i, 0)
dst_ws.cell(row=i+1, column=1).value = cell_value
# 保存目标Excel表格
dst_wb.save('花名册批量更新模板.xls')
```
其中,`xlrd.open_workbook()` 方法用于打开 Excel 文件,`sheet_by_index()` 方法用于获取工作表对象,`nrows` 属性用于获取工作表的行数,`cell_value()` 方法用于读取单元格数据。注意,由于 xlrd 库和 openpyxl 库的用法有所不同,因此在写入目标 Excel 文件时,需要将 `row` 和 `column` 参数分别加 1,以匹配 openpyxl 库的用法。
# 打开源Excel表格 src_wb = xlrd.open_workbook('花名册批量添加模板.xls') # 打开目标Excel表格 dst_wb = xlrd.open_workbook_xls('花名册批量更新模板.xls') # 获取源Excel表格中的第一个工作表 src_ws = src_wb.sheet_by_index(0) # 获取目标Excel表格中的第一个工作表 dst_ws = dst_wb.sheet_by_index(0) # 循环读取A2、A3等单元格数据,并写入到目标Excel表格中 for i in range(1, src_ws.nrows): cell_value = dst_ws.cell(i, 0).value dst_ws.cell(i + 1, 1, value=cell_value) # 保存目标Excel表格 dst_wb.save('花名册批量更新模板.xls')
经过查看你的代码,这段代码使用的是 `xlrd` 模块,但是前面的错误提示是 `openpyxl` 模块的错误。因此,我之前给出的修改建议可能不适用于此处。
关于这个错误提示,`cell()` 方法是 `xlrd` 模块中的方法,不支持名为 `value` 的关键字参数。你应该使用 `xlwt` 模块中的 `write()` 方法来写入单元格数据。例如,要将第二行第一列的单元格的值设为 `'Hello, world!'`,可以这样写:
```
dst_ws.write(1, 0, 'Hello, world!')
```
如果你想要修改某个单元格的值,也应该使用这种方式来指定单元格的位置。例如,要将第二行第一列的单元格的值设为 `'Hello, world!'`,可以这样写:
```
dst_ws.write(1, 0, 'Hello, world!')
```
因此,你的代码应该修改为下面这样:
```
import xlrd
import xlwt
# 打开源Excel表格
src_wb = xlrd.open_workbook('花名册批量添加模板.xls')
# 打开目标Excel表格
dst_wb = xlrd.open_workbook('花名册批量更新模板.xls', formatting_info=True)
dst_ws = dst_wb.sheet_by_index(0)
# 获取源Excel表格中的第一个工作表
src_ws = src_wb.sheet_by_index(0)
# 循环读取A2、A3等单元格数据,并写入到目标Excel表格中
for i in range(1, src_ws.nrows):
cell_value = dst_ws.cell(i, 0).value
dst_ws.write(i + 1, 1, cell_value)
# 保存目标Excel表格
dst_wb.save('花名册批量更新模板.xls')
```
这样就可以避免使用不支持的关键字参数了。
阅读全文
相关推荐
















