【问题标题】:Does ClosedXML support setting a worksheet's zoom level?ClosedXML 是否支持设置工作表的缩放级别?
【发布时间】:2013-11-09 15:36:57
【问题描述】:

我正在使用closedXML 从 C# 生成一个 Excel 文件,我正在尝试查看是否可以设置工作表的缩放级别。我在任何文档或谷歌搜索中都找不到这个?

有人知道怎么做吗?

【问题讨论】:

标签: c# excel closedxml


【解决方案1】:

现在可以通过 IXLSheetView.ZoomScale 属性从 ClosedXML 版本 0.87.0 开始。

using Excel = ClosedXML.Excel;

var wb = new Excel.XLWorkbook();
Excel.IXLWorksheet ws = wb.AddWorksheet("zoom");
Excel.IXLSheetView view = ws.SheetView;

/* Value can be set between 10 and 400 */
view.ZoomScale = 85;

您可以查看IXLSheetView source code了解更多信息。

【讨论】:

    【解决方案2】:

    0.87+ 版更新: https://stackoverflow.com/a/52755386/2610249


    不,ClosedXML 不支持设置缩放。 option that johny links to 仅用于在打印时缩放页面。

    ClosedXML 页面上有feature request,但开发者没有回复。

    【讨论】:

    • Codeplex 站点已过时。 ClosedXML 已移至 Github。
    【解决方案3】:

    正如之前的回答,你不能,但我找到了一种很好的解决方法:

    提前创建模板 Excel 文件,将所有工作表的缩放级别设置为您想要的。

    当您创建工作簿时,而不是:

        public XLWorkbook CreateWorkbook()
        {
            XLWorkbook workbook = new XLWorkbook();
            IXLWorksheet worksheet = workbook.AddWorksheet("First sheet");
    
            // ...
    
            return workbook;
        }
    

    这样做:

        public XLWorkbook CreateWorkbookWithZoom()
        {
            XLWorkbook workbook = new XLWorkbook(@"C:\your template file.xlsx");
            IXLWorksheet worksheet = workbook.Worksheet(1);
            worksheet.Name = "First sheet";
    
            // ...
    
            return workbook;
        }
    

    C:\your template file.xlsx 是模板文件的路径。

    我认为您还可以通过复制现有(空白)工作表而不是创建新工作表来处理可变数量的工作表。如果您需要动态设置缩放级别,您可以通过选择不同的空白模板工作表来获得创意。

    【讨论】:

      【解决方案4】:

      对此的拉取请求已记录在https://github.com/ClosedXML/ClosedXML/pull/180

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-30
        • 1970-01-01
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 2013-09-07
        • 2011-08-23
        • 1970-01-01
        相关资源
        最近更新 更多