[]
        
(Showing Draft Content)

全局设置

概述

GcExcel 模板中的全局设置是在定义时应用于整个模板的设置。当需要在多个字段上应用相同的属性时,这些设置可以节省大量工作。全局设置可以应用于所有模板布局,甚至可以应用于工作簿的多个工作表。

GcExcel 模板提供的全局设置说明如下:

  • KeepLineSize

  • InsertMode

  • DebugMode

  • PaginationMode

  • EmbedFontForFormFields

如何配置

全局设置使用的是 Excel 中的公式名称,在模板填充之前,配置好全局设置,即可使其生效。

全局设置的 Name(名称),需要添加 'TemplateOptions.' 作为前缀,因此完整的名字为:

  • TemplateOptions.KeepLineSize

  • TemplateOptions.InsertMode

  • TemplateOptions.DebugMode

  • TemplateOptions.PaginationMode

  • TemplateOptions.EmbedFontForFormFields

在 SpreadJS 或者 Excel 中定义全局设置

全局设置可以在“名称管理器”对话框中的Excel模板布局中定义,如下所示。通过“公式”->“定义的名称”,然后单击“名称管理器”,可以访问“名称管理器”。

SpreadJS:

image

Excel:

image

使用 GcExcel API 设置全局设置

除了直接在模板中内置公式名称外,也可以通过使用内置工作簿定义的名称 TemplateOptions. 加载Excel模板后,可以在 GcExcel 中定义全局设置。INames 接口的 Add 方法可用于应用全局设置。该方法将 NameRefersTo 属性作为参数(请注意,他们是区分大小写的):

  • 内置定义名称中 Name 属性的值作为模板全局选项的名称。

  • 内置定义名称中 RefersTo 属性的值作为模板全局选项的值。

请参阅以下示例代码以指定模板中的全局设置:

Workbook workbook = new Workbook();
workbook.open("template.xlsx");
 
//Init template global settings
workbook.getNames().add("TemplateOptions.KeepLineSize", "true");
workbook.getNames().add("TemplateOptions.InsertMode", "EntireRowColumn");
//Global setting for PDF form fields
workbook.getNames().add("TemplateOptions.EmbedFontForFormFields", "true");

//Init DebugMode setting
workbook.getNames().add("TemplateOptions.DebugMode", "true");
//Init template global settings 
workbook.getNames().add("TemplateOptions.PaginationMode", "true");
//Add data source
workbook.addDataSource("ds", ds);
 
//Invoke to process the template
workbook.processTemplate();
 
workbook.save("report.xlsx");

此模板示例记录了电子商务在一个国家的不同地区的电子商品销售情况。您还可以下载Excel模板布局。

Excel模板布局

注意:

  • 全局设置的范围是工作簿,因此工作簿中的所有工作表都将会收到全局设置的影响。

  • 导出后,公式名称中的全局设置将被删除。

全局设置

KeepLineSize

KeepLineSize 属性,表示在模板填充时,新增的行或者列是否要与模板行列保持一致。

  • TRUE: 跟模板行保持一致

  • FALSE (默认值): 使用模板中的行高列宽

下图显示了TemplateOptions.KeepLineSize'设置为true。

Setting set to true

InsertMode

InsertMode 属性,表示在模板填充时,新增的单元格是以整行整列的方式插入,还是仅以单元格的方式插入。

  • Cells (默认值):以单元格的方式插入。

  • EntireRowColumn:以整行整列的方式插入。

下图显示了TemplateOptions.InsertMode'设置为EntireRowColumn。这样,当模板填充时,行的行高和轮廓组将保留。

Setting set to false

Debug Mode

Debug Mode 可以帮助您更好的对比模板和报表结果,当开启 Debug Mode 属性,模板填充时会保留模板工作表,并将名字改为 {sheetname}_template,例如原本工作表名字为 sales,则模板工作表为 sales_template。

  • True:开启 Debug Mode,模板填充时额外保留模板工作表。

  • False (默认值):正常填充模板,不保留模板工作表。

下图显示了模板选项时生成的 Excel 报告。DebugMode 选项设置为 true

Template:


Report:


PaginationMode

此属性表示,在模板填充时将以分页模式处理模板。

  • True:开启分页模式

  • False(默认值):关闭分页模式

在分页模式下有以下规则:

  • TemplateOptions.KeepLineSize 值为 True

  • TemplateOptions.InsertMode 值为 EntireRowColumn

PaginationMode 的具体用法,请参考分页模式

EmbedFontForFormFields

此设置允许您在GcExcel生成的PDF文档中嵌入表单字段使用的字体文件。

  • True(默认值):嵌入表单字段使用的字体文件,您的计算机或浏览器无需安装相应的字体,也可以正确显示任意字符。但是,它可能使 PDF 文档文件变大,尤其是使用东亚字符时。

  • False:不嵌入表单字段使用的字体文件,则生成的PDF文档更小,但如果您的计算机或浏览器没有安装相应的字体,则会显示乱码。

下图显示了GcExcel在 TemplateOptions.EmbedFontForFormFields 设置为 True。

您还可以下载下面示例中使用的 Excel 模板布局。

Excel模板布局.xlsx


type=warning

注意: 此设置仅适用于 PDF 表单字段