Qt中QTableWidget单元格合并和Docx单元格合并的差异
最近我在用Qt+VS2015开发“自建房排查报告生成软件”,期间遇到处理表格单元格合并的问题,我用了两天的时间才解决。现在体会分享给大家。
1 编号差异
QTableWidget表格的行列号从0开始,方便程序编写。而docx中表格的行列号从1开始。如果要把QTableWidget表格导出成DOCx中的表格,行列号需要加1.
2 容错能力
在给QTableWidget单元格赋值时,行列号错误不会导致程序崩溃。有时会增加表格的行数来避免错误。而在给docx中表格单元格赋值时行列号错误会导致程序崩溃。
3 合并单元格的处理
QTableWidget单元格合并后在并不影响单元格的行列号,而且输入原有的单元格行列号仍然有效。比如将(1,1)到(1,6)合并,则给(1,1)(1,2)~(1,6)都是指合并的单元格,(1,7)是下一个单元格。而在docx中单元格合并时行和列的处理是不一样的。列合并后,列的号码会变化,但行的号码不变。 参见下图合并后的结果一目了然
表格中的数值为行号和列号