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

使用Python创建带单元格拆分合并的表格并保存为图片求代码方案

Python实现带单元格合并拆分的表格并保存为图片

下面提供两种可行的实现方案,你可以根据需求选择:

方案一:使用Flet库创建表格并导出图片

Flet是一个Python UI框架,支持直接创建带合并单元格的表格,并将界面导出为图片。

步骤1:安装依赖

pip install flet

步骤2:实现代码

import flet as ft

def main(page: ft.Page):
    page.title = "合并单元格表格"
    
    # 创建带合并单元格的表格
    table = ft.DataTable(
        border=ft.border.all(1, ft.colors.BLACK),
        column_spacing=20,
        columns=[
            ft.DataColumn(ft.Text("列1")),
            ft.DataColumn(ft.Text("列2")),
            ft.DataColumn(ft.Text("列3")),
            ft.DataColumn(ft.Text("列4")),
        ],
        rows=[
            # 纵向合并:列1单元格跨2行
            ft.DataRow(
                cells=[
                    ft.DataCell(ft.Text("A"), row_span=2),
                    ft.DataCell(ft.Text("B1")),
                    ft.DataCell(ft.Text("C1")),
                    ft.DataCell(ft.Text("D1")),
                ]
            ),
            # 对应合并行的位置留空
            ft.DataRow(
                cells=[
                    ft.DataCell(ft.Text("")),
                    ft.DataCell(ft.Text("B2")),
                    ft.DataCell(ft.Text("C2")),
                    ft.DataCell(ft.Text("D2")),
                ]
            ),
            # 横向合并:列2和列3单元格跨2列
            ft.DataRow(
                cells=[
                    ft.DataCell(ft.Text("E")),
                    ft.DataCell(ft.Text("F-G"), col_span=2),
                    ft.DataCell(ft.Text("H")),
                ]
            ),
            # 常规行
            ft.DataRow(
                cells=[
                    ft.DataCell(ft.Text("I")),
                    ft.DataCell(ft.Text("J")),
                    ft.DataCell(ft.Text("K")),
                    ft.DataCell(ft.Text("L")),
                ]
            ),
        ]
    )
    
    page.add(table)
    # 保存表格为图片
    page.screenshot("merged_table.png")
    print("表格已保存为merged_table.png")

if __name__ == "__main__":
    ft.app(target=main)

说明

  • 通过row_span参数设置单元格纵向合并的行数,col_span设置横向合并的列数
  • 合并后的单元格,对应行/列的位置需要留空,避免布局错乱
  • 运行代码后,会在当前目录生成merged_table.png图片

方案二:使用HTML表格转图片

如果你熟悉HTML语法,可以先编写带合并单元格的HTML表格,再通过imgkit转换为图片。

步骤1:安装依赖

pip install imgkit

同时需要下载并配置wkhtmltopdf(需添加到系统环境变量)

步骤2:实现代码

import imgkit

# 定义带合并单元格的HTML表格
html_content = """
<html>
<head>
<style>
table {
    border-collapse: collapse;
    width: 500px;
}
th, td {
    border: 1px solid #000;
    padding: 10px;
    text-align: center;
    font-size: 14px;
}
</style>
</head>
<body>
<table>
    <tr>
        <td rowspan="2">A</td>
        <td>B1</td>
        <td>C1</td>
        <td>D1</td>
    </tr>
    <tr>
        <td>B2</td>
        <td>C2</td>
        <td>D2</td>
    </tr>
    <tr>
        <td>E</td>
        <td colspan="2">F-G</td>
        <td>H</td>
    </tr>
    <tr>
        <td>I</td>
        <td>J</td>
        <td>K</td>
        <td>L</td>
    </tr>
</table>
</body>
</html>
"""

# 转换为图片
imgkit.from_string(html_content, "merged_table_html.png")
print("表格已保存为merged_table_html.png")

说明

  • HTML中用rowspan实现纵向合并,colspan实现横向合并
  • 通过CSS可以自定义表格的边框、间距、字体等样式
  • 运行后生成merged_table_html.png图片

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:52:45