draco1023 / poi-tl-ext

Extensions for poi-tl
Apache License 2.0
211 stars 53 forks source link

表格内嵌入表格时,嵌入表格的上边框和单元格重合 #60

Closed cntigers closed 2 years ago

cntigers commented 2 years ago

Describe the bug 表格内嵌入表格时,嵌入表格的上边框和单元格重合

HTML content:

<figure class="table " style="width:85.2%;">
    <table class="ck-table-resized" style="width:85.2%;">
        <colgroup>
            <col style="width:62.81%;">
                <col style="width:37.19%;">
    </colgroup>
        <tbody>
            <tr>
                <td style="width:62.81%;">
                <figure class="image image_resized" style="width:52.25%;">
                    <img src="https://avatars.githubusercontent.com/u/1821583?s=80&v=4">
                    </figure>
                </td>
                <td style="width:18.36%;">
                    <figure class="table " style="width:100%;">
                        <table style="width:100%;">
                            <tbody>
                                <tr>
                                    <td colspan="2">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td>
                                        <p>aaa</p>
                                        <p>bbb</p>
                                        <p>ccc</p>
                                    </td>
                                    <td>&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                    </figure>
                </td>
            </tr>
        </tbody>
    </table>
</figure>

Expected behavior A clear and concise description of what you expected to happen.

Screenshots 1667662306770

poi-tl-ext version: 0.4.1

poi-tl version: 1.11.1

Additional context Add any other context about the problem here.

draco1023 commented 2 years ago

严格的说这个问题跟本类库的代码没关系,我在本机上使用WPS插入嵌套表格默认也是差不多的结果。 通过在单元格样式上设置padding-top应该可以使重叠的边框分离。

cntigers commented 2 years ago

padding-top 我用word嵌入表格也是上边框重合;但是我用上面的例子把padding-top加到td上后就不显示上边框,

draco1023 commented 2 years ago

你提供的html效果如下:

image

在嵌套表格所属的单元格上增加padding-top后的效果:

image

<figure class="table " style="width:85.2%;">
    <table class="ck-table-resized" style="width:85.2%;">
        <colgroup>
            <col style="width:62.81%;">
            <col style="width:37.19%;">
        </colgroup>
        <tbody>
        <tr>
            <td style="width:62.81%;">
                <figure class="image image_resized" style="width:52.25%;">
                    <img src="https://avatars.githubusercontent.com/u/1821583?s=80&v=4">
                </figure>
            </td>
            <td style="width:18.36%;padding-top: 1mm;">
                <figure class="table " style="width:100%;">
                    <table style="width:100%;">
                        <tbody>
                        <tr>
                            <td colspan="2">&nbsp;</td>
                        </tr>
                        <tr>
                            <td>
                                <p>aaa</p>
                                <p>bbb</p>
                                <p>ccc</p>
                            </td>
                            <td>&nbsp;</td>
                        </tr>
                        </tbody>
                    </table>
                </figure>
            </td>
        </tr>
        </tbody>
    </table>
</figure>
cntigers commented 2 years ago

这个是我这边生成的截图: 微信图片_20221106204129 我的模板是这个 notes1.docx 代码用的就是HtmlRenderPolicyTest,感觉是我哪里配置错了

draco1023 commented 2 years ago

我认为是office的bug,我上面的截图是用wps的,刚刚用office试了下效果和你的一样,如果在嵌入表格的第一行那里敲个回车就会显示出顶边框来,不过上面会多个段落,就跟我在改代码之前是一样的。 有人遇到了同样的问题 https://superuser.com/questions/476946/in-word-how-do-i-fix-a-missing-top-border-on-a-nested-table

cntigers commented 2 years ago

我认为是office的bug,我上面的截图是用wps的,刚刚用office试了下效果和你的一样,如果在嵌入表格的第一行那里敲个回车就会显示出顶边框来,不过上面会多个段落,就跟我在改代码之前是一样的

那我先临时把被嵌入表格单元格最开始加一个br标签解决一下,