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

导出Doc文档时两个<ol>列表被合并的问题求助

解决Doc导出中两个有序列表合并编号的问题

我尝试在Doc导出功能中添加两个<ol>列表,但它们被合并成了一个。导出后的Doc文档截图显示,第二个列表的编号从d开始,但它本应从a开始。以下是导出功能中包含的HTML代码:

<table width="500px"> 
<tr> 
<td><h4><span class="language_l1">{{ $leftdata->title }}</span></h4></td> 
<td><h4><span class="language_l1">{{ $rightdata->title }}</span></h4></td> 
</tr> 
<tr> 
<td> 
<ol type="a"> 
<?php $i=1;?> 
@foreach($leftdata->options as $key => $value) 
<li> 
<span class="language_l1">{!! $value !!} </span> 
</li> 
@endforeach 
</ol> 
</td> 
<td> 
<ol type="a"> 
<?php $i=1;?> 
@foreach($rightdata->options as $key => $value) 
<li>[![enter image description here][1]][1] 
<span class="language_l1">{!! $value !!} </span> 
</li> 
@endforeach 
</ol> 
</td> 
</tr> 
</table>

这个问题的核心是Word(.doc格式)对HTML有序列表的解析逻辑:即使两个<ol>元素在HTML结构上完全独立(分别在不同的<td>中),Word默认会将它们视为同一个连续列表的一部分,从而延续之前的编号序列。

解决方案:强制列表独立编号

最简单可靠的方法是给每个<ol>标签添加start="1"属性,强制指定列表从第一个编号开始(对应type="a"就是从a开始)。修改后的代码如下:

<table width="500px"> 
<tr> 
<td><h4><span class="language_l1">{{ $leftdata->title }}</span></h4></td> 
<td><h4><span class="language_l1">{{ $rightdata->title }}</span></h4></td> 
</tr> 
<tr> 
<td> 
<ol type="a" start="1"> <!-- 添加start属性,强制从a开始 -->
<?php $i=1;?> 
@foreach($leftdata->options as $key => $value) 
<li> 
<span class="language_l1">{!! $value !!} </span> 
</li> 
@endforeach 
</ol> 
</td> 
<td> 
<ol type="a" start="1"> <!-- 添加start属性,强制从a开始 -->
<?php $i=1;?> 
@foreach($rightdata->options as $key => $value) 
<li>[![enter image description here][1]][1] 
<span class="language_l1">{!! $value !!} </span> 
</li> 
@endforeach 
</ol> 
</td> 
</tr> 
</table>

如果start属性偶尔出现兼容性问题,还可以尝试给每个<ol>添加CSS计数器重置:

<ol type="a" style="counter-reset: list-item;">

不过start属性对于Word的HTML解析兼容性更好,是优先推荐的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:43:46