Adds an Analysis tab to the XLSX output document.
Purpose
Adds an Analysis tab to the XLSX output document, based on an Excel table in an existing worksheet created by your report.
Compatibility
The macro can be used in the highlighted input document types only. A greyed-out icon indicates not supported.
Usage
Does not work in Report Studio. Does not provide the ability to specify an Excel file as input - in other words, the source worksheet MUST have already been created by other macros in your document. Typically, this macro would be used to produce multiple variants (e.g. using different pivot table fields) of pivot chart and table analyses, as a result of data produced by [xxx.Analysis:] macros.
Updates
Pivot table value fields can now be specified with an optional aggregation function and number format (e.g. 'FieldName^Sum or 'FieldName^Sum^0.000'.
Mandatory (1)
| Parameter | Type | Purpose | Options | Default |
| String | The worksheet name that contains the Excel Table that holds the source of data. The first table found in the worksheet is used (and it must be a 'proper' Excel table, not just columns and data). Note: the [xxx.Analysis:] macros all append ' Data' onto the name of the worksheet which holds the fact table, so if you are using this macro in combination with one of those, ensure you add that onto the name of the worksheet specified here. | N/A | N/A |
Behaviour (8)
| Parameter | Type | Presence | Purpose | Options | Default |
| List<ExecutionResult> | Optional | If specified, asserts the expected execution result of the macro. Accepts a single value or a semicolon-separated list of acceptable values (e.g. 'Success;Warning'). The macro executes normally; if the actual result matches any of the desired values, the result is converted to Success. If the actual result does not match, the result is converted to MacroError with a descriptive message. This is primarily used for testing and diagnostic purposes. Valid values are: 'Unknown', 'Success', 'MacroError', 'WorkerStopped', 'Running', 'Warning', 'NeverRun', 'Cancelled', 'Pending', 'Paused', 'SystemError', 'Deferred' and 'Stopped'. |
|
N/A | |
| Boolean | Optional | Should NCalc expression evaluation throw error on Overflow |
|
true | |
| String | Optional | If specified, asserts the expected output type of the macro result. The macro executes normally; if the actual type does not match, a macro error is generated. Requires 'storeAs', 'storeAsHidden', or 'storeFormattedValueAs' to be set for typed validation. Valid types include CLR names (e.g. Int32, Int64, Single, Double, Boolean, String, JArray, JObject) and C# keyword aliases (e.g. int, long, float, double, bool, string, uint, ulong, short, ushort, byte, sbyte, decimal, char, object). The special value 'Number' matches any numeric type. | N/A | N/A | |
| String | Optional | If specified, asserts the expected output value of the macro result. The macro executes normally; if the actual value does not match, a macro error is generated. When 'storeAs' or 'storeAsHidden' is set, the stored variable value is compared. Otherwise, the document output text is compared. | N/A | N/A | |
| String | Optional | The condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z'). | N/A | true | |
| MacroMode | Optional | The mode in which variables are stored. In the legacy mode (default for Schedules), the variable created is a string and formatted. In the normal mode (default for Report Studio), the output variable is stored as a strongly-typed theObject, e.g. an Int32 or a List |
|
Legacy | |
| ObfuscationType | Optional | Obfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen. |
|
None | |
| String | Optional | If specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. | N/A | N/A |
Filtering & Sorting (1)
Output (2)
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | The text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. | N/A | N/A | |
| String | Optional | The name of a variable to create should the macro fail to execute. The variable will be a text variable, and will contain either the failure text (only if the failureText parameter is set), otherwise it will contain the exception / failure message. | N/A | N/A |
General (8)1 additional
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Mandatory | The worksheet name that contains the Excel Table that holds the source of data. The first table found in the worksheet is used (and it must be a 'proper' Excel table, not just columns and data). Note: the [xxx.Analysis:] macros all append ' Data' onto the name of the worksheet which holds the fact table, so if you are using this macro in combination with one of those, ensure you add that onto the name of the worksheet specified here. | N/A | N/A | |
| Boolean | Optional | Whether to add a title to the Analytics worksheet. |
|
true | |
| Boolean | Optional | Whether to add column grand totals to the pivot table. |
|
true | |
| List<String> | Optional | The pivot table column fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Columns' section. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| List<String> | Optional | The pivot table row fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Rows' section. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| List<String> | Optional | The pivot table value fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Values' section. For each column name, you can specify the aggregation to use via the ^ character e.g. column1^Sum. Omit this to use the default Count aggregation. Valid aggregation values are: 'Average', 'Count', 'CountNumbers', 'Max', 'Min', 'Product', 'StdDev', 'StdDevP', 'Sum', 'Var' or 'VarP'. For each column name, if and only if you have specified an aggregation, you can also specify the number format to use in the pivot table and chart. To do this, use an additional caret separator and specify the number format. For example: column1^Sum^0.00 would use 2 decimal places for the format. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| Boolean | Optional | Whether to add row grand totals to the pivot table. |
|
false | |
| String | Optional | The name to use for the analytics worksheet (which will contain the pivot table and chart). If a worksheet by this name already exists, the new name will have a number appended, e.g. Analytics1, Analytics2, etc. Excel does not allow blank names, names above 31 characters, and the following characters: :, /, \, ?, *, [, ]. | N/A | Analytics |
Deprecated (4)
| Parameter | Type | Preferred Parameter | Purpose | Options | Default |
| List<String> | pivotTableColumnFields | The pivot table column fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Columns' section. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| List<String> | pivotTableFilterFields | The pivot table filter fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Filters' section. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| List<String> | pivotTableRowFields | The pivot table row fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Rows' section. These can be any of the header names in the source data worksheet. | N/A | N/A | |
| List<String> | pivotTableValueFields | The pivot table value fields. In Excel's PivotTable Fields UI, these correspond to the items in the 'Values' section. For each column name, you can specify the aggregation to use via the ^ character e.g. column1^Sum. Omit this to use the default Count aggregation. Valid aggregation values are: 'Average', 'Count', 'CountNumbers', 'Max', 'Min', 'Product', 'StdDev', 'StdDevP', 'Sum', 'Var' or 'VarP'. For each column name, if and only if you have specified an aggregation, you can also specify the number format to use in the pivot table and chart. To do this, use an additional caret separator and specify the number format. For example: column1^Sum^0.00 would use 2 decimal places for the format. These can be any of the header names in the source data worksheet. | N/A | N/A |
Examples (1)
Example 1
This example first uses the [LogicMonitor.ResourceGroupAnalysis:] macro to produce the data (and analysis) worksheets, and then uses a [Xlsx.Analysis:] macro to produce a variant of the original analysis but with different pivot table-related parameters. Note that because the first macro by design appends the text ' Data' onto the name of the data worksheet, this is used by the subsequent macro in the 'inputWorksheetName' parameter. The possible values used in the pivot table parameters are exactly the same as those used by the [LogicMonitor.ResourceGroupAnalysis:] macro and correspond to the headings in that source table. Note that the [Xlsx.AddAnalysis:] macro specifies the optional 'Sum' aggregation and the Excel number format (here, of 3 decimal places) in the 'pivotTableValueFields' parameter:
[LogicMonitor.ResourceGroupAnalysis: resourceGroupRegexProperty=api.user, resourceGroupRegex=`^api.(?<ApiAccessType>.*)`, depth=2, pivotTableColumnFields=AlertLevel, pivotTableFilterFields=ResourceCount, pivotTableRowFields=Description, pivotTableValueFields=AzureResourceCount, worksheetName=Resource Group Analysis][Xlsx.AddAnalysis: inputWorksheetName=Resource Group Analysis Data, pivotTableColumnFields=AlertLevel;SdtStatus, pivotTableFilterFields=Name;ResourceCount, pivotTableRowFields=Description, pivotTableValueFields=AwsResourceCount^Sum^0.000, worksheetName=My Brand New Analysis]