我是Open Xml的新手,并使用Open Xml SDK创建了报表应用程序。它将数据填充到表格中,并且当表格高度超过幻灯片边框时,将幻灯片克隆并填充新幻灯片中的下一组数据等等。所有的工作都很好,但是当一些行有数据包装成2行时,无法在确切的地方插入新页面。看起来原因是当有单行数据时,Open Xml仍然返回与行高相同的行高。无论如何解决这个问题。OpenXML,PresentationML表格高度和换行高度
下面是一段代码,做分页逻辑(CreateTextCell是创建文本单元,并返回一个方法):
var tbl = current.Slide.Descendants<A.Table>().First();
var tr = new A.TableRow();
tr.Height = 200000;
tr.Append(CreateTextCell(product.Name));
tr.Append(CreateTextCell(product.ProductNumber));
tr.Append(CreateTextCell(product.Size));
tr.Append(CreateTextCell(String.Format("{0:00}", product.ListPrice)));
tr.Append(CreateTextCell(product.SellStartDate.ToShortDateString()));
tbl.Append(tr);
totalHeight += tr.Height;
if (totalHeight > pageBorder)
overflow = true;
amura .. of course我以前见过这个问题:)。但是在计算文本的版面区域时,我们需要确保单元格边距,填充和缩进都被考虑在内?如果你已经达到这个目标,你会介意分享一些资源吗? – Aneef 2012-03-07 09:44:53
当你说填充和保证金需要考虑时,你是对的。我从来没有在这个问题上标出正确答案,因为我从未找到解决方案。我回到我们的客户身边,得到了一个可以接受的解决方法。 – amurra 2012-03-07 15:21:56