找回密码
 立即注册

QQ登录

只需一步,快速开始

爱迪生

超级版主

55

主题

65

帖子

1400

积分

超级版主

Rank: 8Rank: 8

积分
1400
爱迪生
超级版主   /  发表于:2022-1-20 19:32  /   查看:2192  /  回复:0
Excel 提供三种预定义视图,普通视图、页面布局和分页预览。
普通:是新工作表的默认视图。
页面布局:通过使用此视图,我们将看到打印文档的预览。这是查看页面开始和结束位置以及查看文档中可能包含的页眉和页脚的好方法。
分页预览:通过使用此视图,我们可以看到打印文档时分页符的位置。
Excel 还提供自定义视图供用户自定义视图。使用自定义视图,您可以建立某些显示和打印设置,例如无网格线或标题、特定边距和特定工作簿视图。然后保存该视图,以便您可以轻松地将其应用到电子表格中。您甚至可以创建多个视图。(关于自定义视图的使用,参考:https://zhuanlan.zhihu.com/p/69855000
image.png255083007.png
GCExcel5.0对该功能进行了支持。
下面介绍该功能的一些使用说明:
每个工作表都有自己的视图,每个自定义视图保存当前工作簿所有工作表的视图状态。
IWorksheetView.ViewType 表示三个预定义视图,Normal、Page Layout 和 Page Break Preview。
IWorkbook.CustomViews 是自定义视图的集合。
使用 Add 方法创建一个新的自定义视图。该视图用于存储当前工作簿的所有工作表的显示、打印设置。
如果此工作簿具有表格或数据透视表,则不允许添加自定义视图。它将抛出异常:“此工作簿具有表格或数据透视表,不允许添加自定义视图。”。
如果视图名称已存在,则将从集合中删除原始视图,并将新视图和设置添加到集合中。
如果视图名称为空或空格,则会抛出异常:“此视图名称为空或空格”。
使用 Count 获取当前工作簿的所有自定义视图的数量。
使用 this[string viewName] 获取特定视图。
ICustomView 表示自定义工作簿视图。
ICustomView .Name 表示自定义视图的名称,该名称不区分大小写。
ICustomView .RowColSettings 指示自定义视图是否包含隐藏行和列的设置(包括过滤器信息)。
ICustomView .PrintSettings 指示自定义视图是否包含打印设置。
调用 ICustomView.Show 将使工作簿应用此视图。
调用 ICustomView.Delete 将从 workbook.CustomViews 中删除此视图。
需要注意的是,SpreadJS不支持此功能,
与此功能相关的API有以下几个:
  1. public interface IWorksheetView
  2. {
  3.     // 获取和设置视图类型
  4.     ViewType ViewType { get; set; }
  5. }
复制代码
  1. // 表示工作表的视图类型
  2. public enum ViewType
  3. {
  4. // 普通
  5.     NormalView,

  6.     //分页预览
  7.     PageBreakPreview,
复制代码

  1. public interface IWorkbook
  2. {
  3. // 获取工作簿自定义视图
  4.     ICustomViews CustomViews{ get;}
  5. }
复制代码
  1. // 自定义工作簿视图的集合。
  2. public interface ICustomViews : IEnumerable<ICustomView>
  3. {
  4.     //返回集合中对象的数量(只读)
  5.     int Count { get; }

  6.     //使用名称获取自定义工作簿视图。
  7.     // <param name="viewName">自定义工作簿视图的名称。</param>
  8.     ICustomView this[string viewName] { get; }

  9.     //创建一个新的自定义视图。
  10.     // <param name="viewName">新视图的名称</param>
  11.     // <param name="printSettings">设置为True则在自定义视图中包含打印设置</param>
  12.     // <param name="rowColSettings">设置为True则 在自定义视图中包含隐藏行和列的设置(包括过滤信息)</param>
  13.     // <returns>新的自定义视图</returns>
  14.     ICustomView Add(string viewName, bool printSettings, bool rowColSettings);
  15. }
复制代码
  1. //自定义工作簿视图。
  2. public interface ICustomView
  3. {
  4.     // 获取对象的名称
  5.     String Name { get; }

  6.     // 如果自定义视图包含隐藏行和列的设置(包括过滤器信息),则为True
  7.     bool RowColSettings { get; }

  8.     //如果打印设置包含在自定义视图中,则为True
  9.     bool PrintSettings { get; }

  10.     //所有工作簿工作表都应用此视图。
  11.     void Show();

  12.     // 从其父 <see cref="ICustomViews"/> 对象中删除此 <see cref="ICustomView">自定义视图</see>
  13.     void Delete();
  14. }
复制代码
简单示例
  1.设置视图类型:
  1. IWorkbook workbook = new Workbook();
  2. IWorksheet worksheet = workbook.ActiveSheet;

  3. worksheet.Range["J12"].Value = 1;

  4. //设置工作表的视图类型为分页预览
  5. worksheet.SheetView.ViewType = ViewType.PageBreakPreview;
  6. //设置分页预览缩放为80%.
  7. worksheet.SheetView.Zoom = 80;

  8. workbook.Save("export.xlsx");
复制代码
2.添加自定义视图
  1. Workbook workbook = new Workbook();
  2. IWorksheet worksheet1 = workbook.ActiveSheet;
  3. IWorksheet worksheet2 = workbook.Worksheets.Add();

  4. worksheet1.Range["J12"].Value = 1;
  5. worksheet2.Range["J12"].Value = 2;

  6. // 添加一个名为Normal的视图.
  7. workbook.CustomViews.Add("Normal", true, true);

  8. worksheet1.PageSetup.PrintArea = "$C$4:$J$12";
  9. worksheet2.PageSetup.PaperSize = PaperSize.A4;

  10. // 添加一个保存所有工作表的当前页面设置的新视图
  11. workbook.CustomViews.Add("PrintSetting", true, false);

  12. worksheet1.Range["5:6"].Hidden = true;
  13. worksheet2.Range["5:6"].Hidden = true;
  14. // 添加一个保存当前所有工作表隐藏行/列,过滤所设置的新视图。
  15. workbook.CustomViews.Add("HiddenRows", false, true);

  16. // 在导出的文件中,用户可以在这两个视图之间切换。
  17. workbook.Save("export.xlsx");
复制代码
3.设置当前工作簿展示的视图类型
  1. IWorkbook workbook = new Workbook();
  2. IWorksheet worksheet = workbook.ActiveSheet;

  3. worksheet.Range["J12"].Value = 1;
  4. worksheet.Range["A1:B2, B2:C3, C3:D4"].Select();
  5. workbook.CustomViews.Add("Selection1", true, true);

  6. worksheet.Range["E5:F9"].Select();
  7. workbook.CustomViews.Add("Selection2", true, true);

  8. workbook.CustomViews["Selection1"].Show();

  9. workbook.Save("export.xlsx");
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部