python面向对象思想用walk访问路径下所有的excel文件,读取sheet_name=“结论认同表”的内容,先把单元格的内容转成字符串,再合并到一个excel文件下进行输出
时间: 2024-03-27 14:40:57 浏览: 61
好的,我可以为你提供代码实现。首先,你需要安装`openpyxl`库来操作Excel文件。下面是实现代码:
```python
import os
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.utils.cell import coordinate_from_string
class ExcelMerger:
def __init__(self, path, output_file):
self.path = path
self.output_file = output_file
def merge(self):
wb_output = None
ws_output = None
for root, dirs, files in os.walk(self.path):
for file in files:
if file.endswith('.xlsx'):
try:
wb = load_workbook(os.path.join(root, file))
except:
continue
for sheet_name in wb.sheetnames:
if sheet_name == '结论认同表':
ws = wb[sheet_name]
if not ws_output:
wb_output = ws.parent
ws_output = wb_output.create_sheet(title='merged')
for row in ws.iter_rows():
for cell in row:
if cell.value is not None:
ws_output.cell(row=cell.row, column=cell.column, value=str(cell.value))
if wb_output:
wb_output.remove(wb_output['Sheet'])
wb_output.save(filename=self.output_file)
if __name__ == '__main__':
path = '/your/path/to/excel/files'
output_file = 'merged.xlsx'
em = ExcelMerger(path, output_file)
em.merge()
```
你需要将`path`设置为你的Excel文件所在路径,将`output_file`设置为你需要输出的文件名。
这个类会遍历指定路径下的所有Excel文件,如果文件名以`.xlsx`结尾,则尝试加载该文件。如果加载失败,会跳过该文件。如果加载成功,则遍历该文件中所有的工作表,如果工作表名为`结论认同表`,则将该工作表中所有单元格的内容转换为字符串,合并到一个新的工作表中。最后,将新的工作表保存为指定的文件。
阅读全文