【发布时间】:2013-11-09 15:36:57
【问题描述】:
我正在使用closedXML 从 C# 生成一个 Excel 文件,我正在尝试查看是否可以设置工作表的缩放级别。我在任何文档或谷歌搜索中都找不到这个?
有人知道怎么做吗?
【问题讨论】:
-
@johny - 我不是在谈论打印。 .我说的是工作表右下角的常规缩放
我正在使用closedXML 从 C# 生成一个 Excel 文件,我正在尝试查看是否可以设置工作表的缩放级别。我在任何文档或谷歌搜索中都找不到这个?
有人知道怎么做吗?
【问题讨论】:
现在可以通过 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了解更多信息。
【讨论】:
0.87+ 版更新: https://stackoverflow.com/a/52755386/2610249
不,ClosedXML 不支持设置缩放。 option that johny links to 仅用于在打印时缩放页面。
ClosedXML 页面上有feature request,但开发者没有回复。
【讨论】:
正如之前的回答,你不能,但我找到了一种很好的解决方法:
提前创建模板 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 是模板文件的路径。
我认为您还可以通过复制现有(空白)工作表而不是创建新工作表来处理可变数量的工作表。如果您需要动态设置缩放级别,您可以通过选择不同的空白模板工作表来获得创意。
【讨论】:
【讨论】: