0

我正在尝试在由 open xml sdk 生成的 excel 电子表格上设置页边距。我没有打开已经存在的 excel 文档,它是从头开始生成的。我正在使用 PageMargins 类,但不确定如何将此实例附加到工作表。SDK 生产力工具提供了以下代码:

PageMargins pageMargins1 = worksheet.GetFirstChild<PageMargins>();
pageMargins1.Left = 0.45D;
pageMargins1.Right = 0.45D;
pageMargins1.Top = 0.5D;
pageMargins1.Bottom = 0.5D;

GetFirstChild() 函数返回 null。我也尝试过

worksheet.Append(pageMargins1);

但没有运气。

还使用此示例中的代码:如果从头开始创建文档,如何通过 OpenXML sdk 将 excel 2007 文档方向更改为横向 以设置页面方向不起作用。如何将 PageSetup 和 PageMargin 实例添加到文档中?

任何人都知道这个 SDK 并知道如何使用边距或页面设置类?

4

1 回答 1

2

将事物附加到工作表的顺序很重要。PageMargins 需要在 PageSetup 之前附加,并且它们都需要在 SheetData 之后。此外,所有设置都需要设置。我使用了这段代码:

PageMargins pageMargins1 = new PageMargins();
pageMargins1.Left = 0.45D;
pageMargins1.Right = 0.45D;
pageMargins1.Top = 0.5D;
pageMargins1.Bottom = 0.5D;
pageMargins1.Header = 0.3D;
pageMargins1.Footer = 0.3D;
worksheetPart.Worksheet.AppendChild(pageMargins1);

PageSetup pageSetup = new PageSetup();
pageSetup.Orientation = OrientationValues.Landscape;
pageSetup.FitToHeight = 2;
pageSetup.HorizontalDpi = 200;
pageSetup.VerticalDpi = 200;
worksheetPart.Worksheet.AppendChild(pageSetup);

与 sdk 生产力工具一起使用的一个巧妙技巧是将 .xlsx 文件重命名为 .zip,然后提取内容。然后打开 /xl/worksheets/sheet.xml 并将标记与 excel 创建的 excel 文件的标记进行比较。

于 2011-12-10T01:14:16.537 回答