read_excel_fields.py 1.88 KB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
读取Excel文件,提取所有字段信息
"""
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

try:
    import openpyxl
    
    excel_path = 'excel/工资全字段.xlsx'
    if not os.path.exists(excel_path):
        excel_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), 'excel/工资全字段.xlsx')
    
    wb = openpyxl.load_workbook(excel_path, data_only=True)
    ws = wb.active
    
    print(f'Sheet名称: {ws.title}')
    print(f'总行数: {ws.max_row}')
    print(f'总列数: {ws.max_column}')
    print('\n' + '='*80)
    print('表头(所有字段):')
    print('='*80)
    
    headers = []
    for i, cell in enumerate(ws[1], 1):
        header_value = cell.value if cell.value else f'Column{i}'
        headers.append(header_value)
        print(f'{i:3d}. {header_value}')
    
    print('\n' + '='*80)
    print('前3行数据示例:')
    print('='*80)
    
    for row_idx in range(2, min(5, ws.max_row + 1)):
        print(f'\n--- 第 {row_idx} 行 ---')
        for col_idx, header in enumerate(headers, 1):
            cell_value = ws.cell(row=row_idx, column=col_idx).value
            if cell_value is not None:
                # 只显示有值的字段
                cell_str = str(cell_value)
                if len(cell_str) > 50:
                    cell_str = cell_str[:50] + '...'
                print(f'  {header}: {cell_str}')
    
    print('\n' + '='*80)
    print(f'所有字段列表(共 {len(headers)} 个):')
    print('='*80)
    print(', '.join(headers))

except ImportError:
    print('错误: 需要安装 openpyxl 库')
    print('请运行: pip install openpyxl')
    sys.exit(1)
except Exception as e:
    print(f'错误: {e}')
    import traceback
    traceback.print_exc()
    sys.exit(1)