【问题标题】:Set scaling property to fit to in Excel using C# with OpenXML使用 C# 和 OpenXML 设置缩放属性以适应 Excel
【发布时间】:2018-06-18 16:26:27
【问题描述】:

我制作了一个用于创建 Excel 工作簿的 asp.net 页面。我已经设置了工作簿的页面设置高度和宽度的方向缩放属性,如下所示:

DocumentFormat.OpenXml.Spreadsheet.PageSetup pgOr = new DocumentFormat.OpenXml.Spreadsheet.PageSetup();
    pgOr.Orientation = OrientationValues.Landscape;
    pgOr.FitToHeight = 3;
    pgOr.FitToWidth = 1;
    newWorksheetPart.Worksheet.AppendChild(pgOr);

但是,当您下载 Excel 文档并打开时,PageSetup 缩放已设置为 1 页宽和 3 页高,这是我想要的,但未选择“适合”单选按钮,因此它实际上并未使用这些环境。

我认为在此过程中我需要将一些属性设置为 true。就像 FitToPage 之类的东西,我不知道是哪一个。有人知道吗?

注意:请记住,我使用的是 DocumentFormat.OpenXml 而不是 Microsoft.Office.Interop.Excel。

【问题讨论】:

    标签: c# openxml export-to-excel


    【解决方案1】:

    OpenXML SDK 提供了一个名为PageSetupProperties 的类,该类提供了一个名为FitToPage 的属性。 将此属性设置为 true 以选择单选按钮:

    SheetProperties sp = new SheetProperties(new PageSetupProperties());
    
    Worksheet ws = newWorksheetPart.Worksheet;
    ws.SheetProperties = sp;
    
    // Set the FitToPage property to true
    ws.SheetProperties.PageSetupProperties.FitToPage = BooleanValue.FromBoolean(true);
    
    DocumentFormat.OpenXml.Spreadsheet.PageSetup pgOr = new DocumentFormat.OpenXml.Spreadsheet.PageSetup();
    pgOr.Orientation = DocumentFormat.OpenXml.Spreadsheet.OrientationValues.Landscape;
    pgOr.FitToHeight = 3;
    pgOr.FitToWidth = 1;
    ws.AppendChild(pgOr);
    

    【讨论】:

      【解决方案2】:

      必须设置FitToPage,xml代码见下图:

      sheet1.xml
      ...
      <sheetPr>
          <pageSetUpPr fitToPage="1"/>
      </sheetPr>
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-26
        • 2011-12-23
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2011-08-04
        相关资源
        最近更新 更多