Aspose表格中单元格写入问题

来源:互联网 发布:MySQL和oracle的count 编辑:程序博客网 时间:2024/06/05 11:09

目标:覆盖单元格原有内容。

单元格中原有内容情况分析:

1、未断行;

2、存在断行;

3、段落中有文字且采用了相同的字体设置;

4、段落中有文字且采用了不同的字体设置;

5、段落中设置了字体格式,但无文字。

Aspose单元格内容解析原理:

1、一个回车为一个段落(Paragraph),因为做好的模板表格中肯定有回车的存在,所以每个单元格中默认至少会有一个Paragraph存在(若程序运行过程中InsertCell方式新增的单元格可能不会有段落,未测试)。

2、通过Paragraph可以控制段落格式。

3、Run为文字,可以控制字体格式和文字内容。

4、每个段落中若无文字则Runs数量为0。

3、每个段落中若出现不同字体设置,从左侧开始相同字体设置的文字为一个Run,以此类推,但需注意,Runs的顺序及数量未必和眼睛看到的一样,跟设置模板操作的次序有关。

针对原有情况解决办法:

1、未断行时:新增Paragraph及Run,这时会采用系统默认设置,注意不是本表格的默认设置。当然,这种情况通常在builder操作时发生,所以跟builder的Format肯定有关。

2、存在断行:若利用第一个段落样式,则首先删除其他段落,然后修改第一个段落里的Run。若其他复杂情况只能就事论事了。

3、段落中有文字且采用了相同的字体设置:同2处理办法,获取第一个Paragraph中第一个Run,然后设置Run的Text即可。

4、段落中有文字且采用了不同的字体设置:过于复杂,特事特办。

5、段落中设置了字体格式,但无文字:这种情况最常见,无法通过获取Paragraph中Runs,因为此时Runs数量为0。考虑肯定有回车的存在,所以可以利用Paragraph的ParagraphBreakFont属性,也就是回车前光标所在位置字体格式,用它作为新增的Run的字体格式。

0 0