读取并解析文件夹中的所有XML文件,这些数据转换为Excel格式拼接在一个sheet内,并将每个XML的文件名写在第一列
时间: 2024-10-26 20:16:05 浏览: 29
在Python中,可以使用`xml.etree.ElementTree`库来读取和解析XML文件,`pandas`库来处理Excel数据,以及`openpyxl`或`xlsxwriter`来生成Excel文件。以下是简单的步骤:
1. 导入所需库:
```python
import os
import xml.etree.ElementTree as ET
import pandas as pd
from openpyxl import Workbook # 或者 from xlsxwriter import Writer if you prefer xlsxwriter
```
2. 定义函数来读取和解析XML文件:
```python
def parse_xml(file_path):
tree = ET.parse(file_path)
root = tree.getroot()
data = []
for element in root:
data.append(element.attrib) # 将元素属性添加到列表
return data
```
3. 创建一个函数来合并所有XML文件的数据:
```python
def merge_xml_to_excel(xml_files_dir, output_file):
all_data = []
for filename in os.listdir(xml_files_dir):
if filename.endswith('.xml'):
file_path = os.path.join(xml_files_dir, filename)
parsed_data = parse_xml(file_path)
all_data.extend(parsed_data)
df = pd.DataFrame(all_data) # 转换为DataFrame
df.insert(0, 'File Name', df.index.map(os.path.basename)) # 插入文件名作为第一列
# 使用pandas直接写入Excel,或者创建Workbook对象然后写入
with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False) # 如果使用xlsxwriter, 则改为此行: df.to_excel(writer, sheet_name='Sheet1')
```
4. 调用上述函数传入XML文件目录和输出Excel文件路径:
```python
merge_xml_to_excel('path/to/xml/files', 'output.xlsx')
```
阅读全文