Python中如何处理Excel文件的问题

如何实现单元格的对角线格式? 单元格有个属性是对角线,也就是在单元格中插入一条对角线,请问用 python 怎么实现


Python中如何处理Excel文件的问题
3 回复

Python处理Excel文件主要用pandasopenpyxl/xlrd这几个库。pandas是主力,openpyxl处理.xlsxxlrd处理老格式.xls

1. 基础读写:

import pandas as pd

# 读取Excel
df = pd.read_excel('文件.xlsx', sheet_name='Sheet1')  # sheet_name可以是名称或索引

# 查看数据
print(df.head())  # 前几行
print(df.columns)  # 列名

# 写入Excel
df.to_excel('新文件.xlsx', index=False)  # index=False不保存行索引

2. 处理多个sheet:

# 读取所有sheet
excel_file = pd.ExcelFile('文件.xlsx')
sheet_names = excel_file.sheet_names  # 获取所有sheet名

# 读取特定sheet
df_dict = pd.read_excel('文件.xlsx', sheet_name=None)  # 返回字典,key是sheet名
df_sheet1 = df_dict['Sheet1']

# 写入多个sheet
with pd.ExcelWriter('输出.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)

3. 常见操作:

# 选择列
df['列名']  # 单列
df[['列1', '列2']]  # 多列

# 筛选行
df[df['列名'] > 100]  # 条件筛选
df.iloc[0:10]  # 按位置选择

# 修改数据
df['新列'] = df['列1'] + df['列2']  # 新增列
df.loc[df['列名'] > 100, '目标列'] = 新值  # 条件修改

# 处理空值
df.dropna()  # 删除含空值的行
df.fillna(0)  # 填充空值为0

4. 格式处理(用openpyxl):

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment

wb = load_workbook('文件.xlsx')
ws = wb.active

# 设置字体
ws['A1'].font = Font(bold=True, size=12)

# 设置对齐
ws['A1'].alignment = Alignment(horizontal='center')

# 设置列宽
ws.column_dimensions['A'].width = 20

wb.save('新文件.xlsx')

5. 大数据处理技巧:

# 分块读取大文件
chunk_size = 10000
chunks = pd.read_excel('大文件.xlsx', chunksize=chunk_size)

for chunk in chunks:
    # 处理每个数据块
    process(chunk)

# 只读取需要的列(减少内存)
df = pd.read_excel('文件.xlsx', usecols=['列1', '列2'])

6. 常见问题解决:

# 编码问题
df = pd.read_excel('文件.xlsx', engine='openpyxl')  # 明确指定引擎

# 日期格式
df['日期列'] = pd.to_datetime(df['日期列'], errors='coerce')

# 去重
df.drop_duplicates(inplace=True)

# 类型转换
df['数值列'] = pd.to_numeric(df['数值列'], errors='coerce')

简单总结:pandas做数据处理,openpyxl搞格式,按需选工具。


谢谢了

回到顶部