You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用openpyxl移除pandas导出Excel内容单元格的所有边框?

移除Excel工作表中所有含内容单元格的边框(pandas + openpyxl实现)

下面提供两种无需手动指定单元格范围的可行方案,自动处理所有有内容的单元格:

方案一:导出后用openpyxl批量清除边框

先导出DataFrame到Excel,再用openpyxl加载文件,遍历所有有值的单元格移除边框:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Border, Side

# 示例DataFrame
df = pd.DataFrame({'列1': [10, 20, 30], '列2': ['a', 'b', 'c']})
# 导出到Excel,指定openpyxl引擎
df.to_excel('带边框的文件.xlsx', engine='openpyxl', index=False)

# 加载生成的Excel文件
wb = load_workbook('带边框的文件.xlsx')
ws = wb.active

# 定义空边框样式(所有边都无样式)
无边框 = Border(left=Side(style=None),
               right=Side(style=None),
               top=Side(style=None),
               bottom=Side(style=None))

# 遍历所有已使用的单元格范围,自动获取max_row和max_col,不用手动指定
for 行 in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column):
    for 单元格 in 行:
        # 只处理有内容的单元格
        if 单元格.value is not None:
            单元格.border = 无边框

# 保存修改后的文件
wb.save('无边框的文件.xlsx')

方案二:导出时直接设置无边框样式

如果你的边框是pandas导出时自带的表格样式导致的,可以直接用Styler设置全局无边框,一步到位:

import pandas as pd

df = pd.DataFrame({'列1': [10, 20, 30], '列2': ['a', 'b', 'c']})

# 设置单元格和表头都无边框
df.style.set_table_styles(
    [{'selector': 'td, th', 'props': [('border', 'none')]}]
).to_excel('无边框的文件.xlsx', engine='openpyxl', index=False)

注意事项

  • 方案一通用性更强,不管边框是怎么来的(比如手动添加、其他工具生成),都能清除;
  • 方案二更高效,适合导出时直接控制样式的场景;
  • ws.max_row和ws.max_column会自动获取工作表中最后一行/列的位置,不用手动写死范围。

内容的提问来源于stack exchange,提问作者wcz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:18:02