c# – 自动换行的OpenXML,PresentationML表高度和行高

我是Open Xml的新手,并使用Open Xml SDK创建了一个报告应用程序.它将数据填充到表中,当表高度超过幻灯片边界时克隆幻灯片并填充新幻灯片中的下一组数据,依此类推.一切正常,但是当某些行包含2行的数据无法在确切的位置进入新页面时.似乎原因是当存在单行数据时,Open Xml仍然返回行高与行高相同.无论如何解决这个问题.

以下是执行分页逻辑的一段代码(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;

最佳答案 我有一个非常相似的
question,并发现通过Open XML SDK填充表时,表的高度不会更新.只有在Power Point中实际打开演示文稿时才会更新它.这显然无法帮助您在代码中弄清楚何时将表拆分为新幻灯片,但如果您尝试使用此
answer,则可能有所帮助.

点赞