import openpyxl # 打开excel文件 wb = openpyxl.load_workbook("D:/1/总表/05161.xlsx") # 选择要读取的工作簿 wb = wb['0516-200A'] # 指定要提取的元素坐标 elements = [(12,12)] # 定义新文件的文件名和工作簿名称 new_file_name = 'D:/1/总表/new.xlsx' new_sheet_name = '提取数据' # 创建新Excel文件和工作簿 new_wb = openpyxl.Workbook() new_ws = new_wb.active new_ws.title = new_sheet_name # 逐行读取原始Excel文件,提取指定元素数据并按行排列输出到新文件 for row in range(1, wb.max_row + 1): new_row = [] for col in range(1, wb.max_column + 1): if (row, col) in elements: new_row.append(wb.cell(row=row, column=col).value) if new_row: new_ws.append(new_row) # 保存新Excel文件 new_wb.save(new_file_name)
时间: 2024-02-13 12:03:35 浏览: 108
这段代码是用Python中openpyxl库实现的一个Excel文件的读取和提取部分数据的功能,并将提取的数据输出到一个新的Excel文件中。
具体实现过程为:
1.导入openpyxl库
2.打开要读取的Excel文件
3.选择要读取的工作簿
4.指定要提取的元素坐标
5.定义新文件的文件名和工作簿名称
6.创建新Excel文件和工作簿
7.逐行读取原始Excel文件,提取指定元素数据并按行排列输出到新文件
8.保存新Excel文件
在这个过程中,openpyxl库提供了许多操作Excel文件的函数和方法,例如load_workbook()函数用于打开Excel文件,max_row属性和max_column属性用于获取Excel表格的行数和列数,cell()方法用于获取指定单元格的数据等。通过这些函数和方法的组合,可以实现对Excel文件的读取和操作。
相关问题
import os from openpyxl import load_workbook # 指定文件夹路径 folder_path = '文件夹路径' # 获取文件夹中所有excel文件的路径 file_paths = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith('.xlsx')] # 创建一个新的工作簿 wb_combined = load_workbook(file_paths[0]) # 获取新工作簿的活动表 ws_combined = wb_combined.active # 读取并整合所有excel文件的数据 for file_path in file_paths[1:]: # 打开excel文件 wb = load_workbook(file_path) # 获取第一个工作表 ws = wb.active # 将每个单元格的值和格式复制到新工作簿中 for row in ws.iter_rows(min_row=2, values_only=True): ws_combined.append(row) # 保存整合后的数据到新的excel文件 output_file = '汇总.xlsx' wb_combined.save(output_file)
这段代码看起来是正确的,可以将文件夹中所有的 Excel 文件整合到一个新的 Excel 文件中,并保留原来的格式。只要将 `'文件夹路径'` 替换为实际存放 Excel 文件的文件夹路径,并确保文件夹中的 Excel 文件拥有相同的表头,就可以使用这段代码了。整合后的数据会保存为一个名为 `'汇总.xlsx'` 的 Excel 文件。如果你有任何问题,请随时问我!
对如下这段python代码增加excel文件和sheet页不存在则新建,存在则打开的处理 # 打开Excel文件 wb = openpyxl.load_workbook('问题单.xlsx') # 创建按提出人汇总工作表 summary_by_reporter = wb.create_sheet('按提出人汇总') # 创建按处理人汇总工作表 summary_by_handler = wb.create_sheet('按处理人汇总') # 创建总体汇总工作表 summary_total = wb.create_sheet('总体汇总') # 获取问题单工作表 ws = wb['问题单'] #获取提出人汇总工作表 summary_by_reporter = wb['按提出人汇总'] # 获取按处理人汇总工作表 summary_by_handler = wb['按处理人汇总'] # 获取总体汇总工作表 summary_total = wb['总体汇总']
要在这段代码中实现对excel文件和sheet页的判断和操作,可以借鉴之前的示例代码,并对代码进行相应的修改。以下是一个实现了这个功能的示例代码:
```python
import openpyxl
import os
# 定义要操作的文件名和sheet名
file_name = '问题单.xlsx'
sheet_names = ['问题单', '按提出人汇总', '按处理人汇总', '总体汇总']
# 判断文件是否存在,不存在则创建
if not os.path.exists(file_name):
wb = openpyxl.Workbook()
wb.save(file_name)
# 打开文件,获取工作簿和sheet对象
wb = openpyxl.load_workbook(file_name)
for sheet_name in sheet_names:
if sheet_name not in wb.sheetnames:
wb.create_sheet(sheet_name)
# 获取问题单工作表和各个汇总工作表对象
ws = wb['问题单']
summary_by_reporter = wb['按提出人汇总']
summary_by_handler = wb['按处理人汇总']
summary_total = wb['总体汇总']
# 在各个汇总工作表中写入数据
summary_by_reporter['A1'] = '按提出人汇总'
summary_by_handler['A1'] = '按处理人汇总'
summary_total['A1'] = '总体汇总'
# 保存文件
wb.save(file_name)
```
在这个示例代码中,我们首先定义要操作的文件名和sheet名,并在读取或者创建excel文件前进行判断。接着,我们使用`openpyxl.load_workbook`方法打开文件,并根据需要创建或者获取sheet对象。最后,我们在各个汇总工作表中写入数据,并保存文件。
需要注意的是,这个示例代码中只实现了对指定的sheet页进行操作,如果需要操作其他的sheet页,则需要在代码中添加相应的处理逻辑。
阅读全文