Python Reference Guide For IBM SPSS Statistics
Python Reference Guide For IBM SPSS Statistics
Statistics
IBM
Note
Before using this information and the product it supports, read the information in “Notices” on page
245.
Product Information
This edition applies to version 29, release 0, modification 0 of IBM® SPSS® Statistics and to all subsequent releases and
modifications until otherwise indicated in new editions.
© Copyright International Business Machines Corporation .
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
Chapter 1. Overview.............................................................................................. 1
iii
spss.GetXmlUtf16 Function ................................................................................................................ 78
spss.HasCursor Function .....................................................................................................................78
spss.IsActive Function ........................................................................................................................ 78
spss.IsDistributedMode Function ....................................................................................................... 79
spss.IsOutputOn Function .................................................................................................................. 79
spss.Procedure Class .......................................................................................................................... 79
spss.PyInvokeSpss.IsUTF8mode Function ........................................................................................ 80
spss.PyInvokeSpss.IsXDriven Function ..............................................................................................80
spss.SetActive Function ...................................................................................................................... 80
spss.SetDefaultPlugInVersion Function ............................................................................................. 80
spss.SetMacroValue Function ............................................................................................................. 81
spss.SetOutput Function .....................................................................................................................81
spss.SetOutputLanguage Function ..................................................................................................... 81
spss.ShowInstalledPlugInVersions Function ..................................................................................... 82
spss.SplitChange Function .................................................................................................................. 82
spss.StartDataStep Function .............................................................................................................. 83
spss.StartProcedure Function .............................................................................................................83
spss.StartSPSS Function ..................................................................................................................... 85
spss.StopSPSS Function ......................................................................................................................86
spss.Submit Function .......................................................................................................................... 87
spss.TextBlock Class ........................................................................................................................... 87
iv
OpenDataDoc Method ....................................................................................................................... 100
OpenOutputDoc Method ................................................................................................................... 100
OpenSyntaxDoc Method ................................................................................................................... 101
RunSyntax Method ............................................................................................................................ 101
SaveServers Method ......................................................................................................................... 102
ScriptParameter Method ...................................................................................................................102
SetCurrentDirectory Method .............................................................................................................102
SetDefaultJCVersion Method ............................................................................................................103
SetExportOption Method .................................................................................................................. 103
SetPreference Method ...................................................................................................................... 103
SetUIAlerts Method ...........................................................................................................................103
StartClient Method ............................................................................................................................ 104
StopClient Method .............................................................................................................................104
_heartBeat Method ........................................................................................................................... 104
Datasets and Data Editor Windows.........................................................................................................105
SpssDataDoc Class ............................................................................................................................105
DataDocsList Class ............................................................................................................................ 108
SpssDataUI Class .............................................................................................................................. 108
Output Documents and Viewer Windows............................................................................................... 112
SpssOutputDoc Class ........................................................................................................................ 112
OutputDocsList Class ........................................................................................................................ 127
OutputItemList Class ........................................................................................................................ 127
SpssOutputUI Class .......................................................................................................................... 128
Syntax Documents and Syntax Editor Windows..................................................................................... 131
SpssSyntaxDoc Class ........................................................................................................................ 131
SyntaxDocsList Class ........................................................................................................................ 134
SpssSyntaxUI Class ...........................................................................................................................135
Output Items............................................................................................................................................138
SpssOutputItem Class ...................................................................................................................... 138
SpssChartItem Class .........................................................................................................................145
SpssModelItem Class ........................................................................................................................146
SpssHeaderItem Class ......................................................................................................................147
SpssLogItem Class ............................................................................................................................ 148
SpssTextItem Class ........................................................................................................................... 149
SpssTitleItem Class ...........................................................................................................................150
Menus.......................................................................................................................................................150
MenuTableList Class ..........................................................................................................................150
SpssMenuItem Class .........................................................................................................................151
Pivot Tables..............................................................................................................................................151
Pivot Tables ....................................................................................................................................... 151
SpssPivotTable Class .........................................................................................................................152
SpssDataCells Class .......................................................................................................................... 168
SpssDimension Class ........................................................................................................................ 181
SpssFootnotes Class ......................................................................................................................... 183
SpssLabels Class ............................................................................................................................... 193
SpssLayerLabels Class ...................................................................................................................... 210
SpssPivotMgr Class ........................................................................................................................... 220
Managing Remote Servers.......................................................................................................................221
SpssServerConf Class ....................................................................................................................... 221
SpssServerConfList Class ..................................................................................................................226
SpssScriptContext Class .........................................................................................................................227
GetOutputDoc Method ...................................................................................................................... 227
GetOutputItem Method .................................................................................................................... 227
GetOutputItemIndex Method ........................................................................................................... 228
v
Appendix B. Setting Color Values .......................................................................231
Notices..............................................................................................................245
Trademarks.............................................................................................................................................. 246
Index................................................................................................................ 247
vi
Chapter 1. Overview
The IBM SPSS Statistics - Integration Plug-in for Python provides two interfaces for programming with
the Python language within IBM SPSS Statistics on Windows, Linux, macOS, and for IBM SPSS Statistics
Server.
Python Integration Package
The Python Integration Package provides functions that operate on the IBM SPSS Statistics processor,
extending IBM SPSS Statistics command syntax with the full capabilities of the Python programming
language. With this interface, you can access IBM SPSS Statistics variable dictionary information, case
data, and procedure output. You can submit command syntax to IBM SPSS Statistics for processing,
create new variables and new cases in the active dataset, or create new datasets. You can also create
output in the form of pivot tables and text blocks, all from within Python code.
Scripting Facility
The Scripting Facility provides Python functions that operate on user interface and output objects.
With this interface, you can customize pivot tables, and export items such as charts and tables in
various formats. You can also start IBM SPSS Statistics dialog boxes, and manage connections to
instances of IBM SPSS Statistics Server, all from within Python code.
The IBM SPSS Statistics - Integration Plug-in for Python is included with IBM SPSS Statistics - Essentials
for Python, which is installed by default with your IBM SPSS Statistics product. Essentials for Python also
includes Python 3.10 on all supported operating systems (Windows, Linux, macOS, and UNIX for IBM
SPSS Statistics Server) and a set of extension commands that are implemented in Python that provide
capabilities beyond what is available with built-in SPSS Statistics procedures.
By default, the Integration Plug-in for Python uses the Python 3.10 distribution that are installed with
your IBM SPSS Statistics product (as part of Essentials for Python). The distribution is installed to
the Python3 directory under the directory where SPSS Statistics is installed. You can specify to use
a different installation of Python 3.10 on the File Locations tab on the Options dialog (Edit>Options).
In distributed analysis mode (requires IBM SPSS Statistics Server), the Python location on the remote
server is set from the IBM SPSS Statistics Administration Console. Contact your system administrator for
assistance.
Note: The locations for extension commands that are listed in the output from the SHOW EXTPATHS
command are added to the Python search path when you are accessing Python from within IBM SPSS
Statistics. If you develop your own Python modules for use with IBM SPSS Statistics on your computer
then you can store your modules in one of those locations.
2 Python Reference Guide for IBM SPSS Statistics
Chapter 2. Python Integration Package
will generate an error, because FREQUENCIES is not recognized by Python. But since the goal of a
program block is typically to generate some command syntax that IBM SPSS Statistics can understand,
there must be a way to specify command syntax within a program block. This is done by expressing syntax
commands, or parts of commands, as character strings, as in:
The real power of program blocks comes from the ability to dynamically build strings of command syntax,
as in:
DESCRIPTIVES VARIABLES=
scalevar1 scalevar2 scalevar3...etc.
.
Example
SET PRINTBACK ON MPRINT ON.
GET FILE='/examples/data/Employee data.sav'.
BEGIN PROGRAM PYTHON3.
import spss
scaleVarList=[]
catVarList=[]
varcount=spss.GetVariableCount()
for i in range(varcount):
if spss.GetVariableMeasurementLevel(i)=='scale':
scaleVarList.append(spss.GetVariableName(i))
else:
catVarList.append(spss.GetVariableName(i))
spss.Submit("""
FREQUENCIES
/VARIABLES=%s.
DESCRIPTIVES
/VARIABLES=%s.
""" %(' '.join(catVarList), ' '.join(scaleVarList)))
END PROGRAM.
The generated command syntax is displayed in the log in the IBM SPSS Statistics Viewer:
• myfuncs is a user-defined Python module containing the function (demo) that will submit the nested
program block.
A Python module is simply a text file containing Python definitions and statements. You can create a
module with a Python IDE, or with any text editor, by saving a file with an extension of .py. The name of
the file, without the .py extension, is then the name of the module.
• The import statement includes myfuncs so that it is loaded along with the spss module. To be sure
that Python can find your module, you may want to save it to your Python "site-packages" directory,
typically /Python310/Lib/site-packages.
• The code myfuncs.demo() calls the function demo in the myfuncs module.
Following is a sample of the contents of myfuncs.
import spss
def demo():
spss.Submit("""
BEGIN PROGRAM PYTHON3.
<Python code>
END PROGRAM.""")
• The sample myfuncs module includes an import spss statement. This is necessary since a function
in the module makes use of a function from the spss module--specifically, the Submit function.
• The nested program block is contained within a Python triple-quoted string. Triple-quoted strings allow
you to specify a block of commands on multiple lines, resembling the way you might normally write
command syntax.
• Notice that spss.Submit is indented but the BEGIN PROGRAM block is not. Python statements that
form the body of a user-defined Python function must be indented. The level of indentation is arbitrary
but must be the same for all statements in the function body. The BEGIN PROGRAM block is passed as
a string argument to the Submit function and is processed by IBM SPSS Statistics as a block of Python
statements. Python statements are not indented unless they are part of a group of statements, as in a
function or class definition, a conditional expression, or a looping structure.
Notes
• You can have up to five levels of nesting.
• Python variables specified in a nested program block are local to that block unless they are specified as
global variables. In addition, Python variables specified in a program block that invokes a nested block
can be read, but not modified, in the nested block.
• Nested program blocks can be Python program blocks or R program blocks.
• If a Submit function containing a triple quoted string nests a Python program block containing another
triple quoted string, use a different type of triple quotes in the nested block. For example, if the outer
block uses triple double quotes, then use triple single quotes in the nested block.
Unicode Mode
When IBM SPSS Statistics is in Unicode mode (controlled by the UNICODE subcommand of the SET
command) the following conversions are automatically done when passing and receiving strings through
the functions available with the spss module:
There is no command terminator in Python, and continuation lines come in two flavors:
• Implicit. Expressions enclosed in parentheses, square brackets, or curly braces can continue across
multiple lines without any continuation character. The expression continues implicitly until the closing
character for the expression.
• Explicit. All other expression require a backslash at the end of each line to explicitly denote
continuation.
Line indentation indicates grouping of statements. Groups of statements contained in conditional
processing and looping structures are identified by indentation, as is the body of a user-defined Python
function. There is no statement or character that indicates the end of the structure. Instead, the
indentation level of the statements defines the structure, as in:
for i in range(varcount):
if spss.GetVariableMeasurementLevel(i)=="scale":
ScaleVarList=ScaleVarList + " " + spss.GetVariableName(i)
else:
CatVarList=CatVarList + " " + spss.GetVariableName(i)
print CatVarList
Note: You should avoid the use of tab characters in Python code within BEGIN PROGRAM-END PROGRAM
blocks. For line indentation, use spaces.
Windows Users
You can start IDLE (the default IDE provided with Python) for Python 3.10 from All Programs > IBM SPSS
Statistics > Python 3.10 for IBM SPSS Statistics 29 > Python 3.10 IDLE(PythonGUI). This action starts
IDLE from the Python location that is specified on the File Locations tab in the Options dialog. You can
then use import spss to start driving the IBM SPSS Statistics processor.
import sys
sys.path.insert(0,r'<SPSS_HOME>\Python3\Lib\site-packages')
In the preceding expressions, <SPSS_HOME> is the installation location of IBM SPSS Statistics; for
example, C:\Program Files\IBM\SPSS Statistics\29.
Linux Users
The statisticspython3 script, in the bin directory under the location where IBM SPSS Statistics is
installed, starts the Python interpreter from the Python location that is specified on the File Locations tab
in the Options dialog. You can then use import spss to start driving the IBM SPSS Statistics processor.
If you choose not to use this script, then you must modify the Python search path to add the path to the
spss module. You can add to the Python search path by modifying (or creating) the sitecustomize.py
module for the installation of Python 3.10 that you want to use. The sitecustomize.py module, if it
exists, is in the <PYTHON_HOME>/lib/python3.10/site-packages directory, where <PYTHON_HOME>
is the installation location of Python 3.10. If it does not exist then create it in that location.
For Python 3.10, add the following lines to sitecustomize.py:
import sys
sys.path.insert(0,'<SPSS_HOME>/Python3/lib/python3.10/site-packages')
In the preceding expression, <SPSS_HOME> is the installation location of IBM SPSS Statistics; for
example, /opt/IBM/SPSS Statistics/29.
You must also modify the LD_LIBRARY_PATH environment variable as follows:
export LD_LIBRARY_PATH=<PYTHON_HOME>/lib:<SPSS_HOME>/lib:$LD_LIBRARY_PATH
In the preceding expression, <PYTHON_HOME> is the location of the installation of Python 3.10 that you
want to use. For reference, for the version of Python 3.10 that is installed with IBM SPSS Statistics,
<PYTHON_HOME> is <SPSS_HOME>/Python3.
Mac Users
To drive the IBM SPSS Statistics processor from an external Python 3 process on Mac, start the Python3
for SPSS Statistics application, which are in the directory where IBM SPSS Statistics is installed. The
applications start IDLE from the Python location that is specified on the File Locations tab in the Options
dialog. You can then use import spss to start driving the IBM SPSS Statistics processor.
If you choose not to use the Python3 for SPSS Statistics application, then you must modify the Python
search path to add the path to the spss module. You can add to the Python search path by modifying (or
creating) the sitecustomize.py module for the installation of Python 3.10 that you want to use. The
sitecustomize.py module, if it exists, is in the <PYTHON_HOME>/lib/python3.10/site-packages
directory, where <PYTHON_HOME> is the installation location of Python 3.10. If it does not exist then
create it in that location.
For Python 3.10, add the following lines to sitecustomize.py:
import sys
sys.path.insert(0,'<INSTALLDIR>/Python3/lib/python3.10/site-packages')
export
DYLD_LIBRARY_PATH=<SPSS_HOME>/lib:<SPSS_HOME>/Library/Frameworks/Sentinel.framework/Versions/A:
<SPSS_HOME>/Library/Frameworks/SuperPro.framework/Versions/A
export PYTHONHOME=<PYTHON_HOME>
In the preceding expression, <SPSS_HOME> is the location of the Contents folder in the IBM SPSS
Statistics application bundle, and is given by <INSTALLDIR>/SPSSStatistics.app/Contents.
<PYTHON_HOME> is the location of the installation of Python 3.10 that you want to use. For
reference, for the version of Python 3.10 that is installed with IBM SPSS Statistics, <PYTHON_HOME>
is <INSTALLDIR>/Python3.
Related information
“spss.StartSPSS Function ” on page 85
Note: There is a conflict between the definition of the _ function as used by the Python modules
(pygettext and gettext) that handle translations, and the automatic assignment of interactively
generated expression values to the variable _. In order to resolve this, the translation initialization code
in the extension module disables this assignment.
Calls to the spss.StartProcedure function (or the spss.Procedure class) should use the
form spss.StartProcedure(procedureName,omsIdentifier) where procedureName is the
translatable name associated with output from the procedure and omsIdentifier is the language invariant
OMS command identifier associated with the procedure. For example:
spss.StartProcedure(_("Demo"),"demoId")
BEGIN PROGRAM.
import spss
help(spss.Submit)
END PROGRAM.
spss.ActiveDataset Function
spss.ActiveDataset(). Returns the name of the active dataset.
• If the active dataset is unnamed, '*' is returned.
Example
import spss
name = spss.ActiveDataset()
spss.AddProcedureFootnotes Function
spss.AddProcedureFootnotes(footnote). Adds a footnote to all tables generated by a procedure. The
argument footnote is a string specifying the footnote.
• The AddProcedureFootnotes function can only be used within a StartProcedure-EndProcedure
block or within a custom procedure class based on the spss.BaseProcedure class.
import spss
spss.StartProcedure("mycompany.com.demoProc")
spss.AddProcedureFootnotes("A footnote")
table = spss.BasePivotTable("Table Title",
"OMS table subtype")
table.SimplePivotTable(cells = [1,2,3,4])
spss.EndProcedure()
spss.BasePivotTable Class
spss.BasePivotTable(title,templateName,outline,isSplit,caption). Provides the ability to create custom
pivot tables that can be displayed in the IBM SPSS Statistics Viewer or written to an external file using the
IBM SPSS Statistics Output Management System.
• The argument title is a string that specifies the title that appears with the table. Each table associated
with a set of output (as specified in a StartProcedure-EndProcedure block) should have a unique
title. Multiple tables within a given procedure can, however, have the same value of the title argument as
long as they have different values of the outline argument.
• The argument templateName is a string that specifies the OMS (Output Management System) table
subtype for this table. It must begin with a letter and have a maximum of 64 characters. Unless you are
routing this pivot table with OMS, you will not need to keep track of this value, although you do have to
provide a value that meets the stated requirements.
Note: Specifying "Warnings" for templateName will generate an IBM SPSS Statistics Warnings table.
Unless you want to generate an IBM SPSS Statistics Warnings table, you should avoid specifying
"Warnings" for templateName. See the topic “Creating a Warnings Table ” on page 34 for more
information.
• The optional argument outline is a string that specifies a title, for the pivot table, that appears in the
outline pane of the Viewer. The item for the table itself will be placed one level deeper than the item for
the outline title. If omitted, the Viewer item for the table will be placed one level deeper than the root
item for the output containing the table.
• The optional Boolean argument isSplit specifies whether to enable split processing when creating pivot
tables from data that have splits. By default, split processing is enabled. To disable split processing for
pivot tables, specify isSplit=False. If you are creating a pivot table from data that has splits and you
want separate results displayed for each split group, you will want to make use of the spss.SplitChange
function. In the absence of calls to spss.SplitChange, isSplit has no effect.
• The optional argument caption is a string that specifies a table caption.
An instance of the BasePivotTable class can only be used within a StartProcedure-EndProcedure
block or within a custom procedure class based on the spss.BaseProcedure class. For an example of
creating a pivot table using spss.StartProcedure-spss.EndProcedure, see “Creating Pivot Tables
with the SimplePivotTable Method ” on page 17 . For an example of creating a pivot table using a class
based on the spss.BaseProcedure class, see “spss.BaseProcedure Class ” on page 35 .
The figure below shows the basic structural components of a pivot table. Pivot tables consists of one
or more dimensions, each of which can be of the type row, column, or layer. In this example, there is
one dimension of each type. Each dimension contains a set of categories that label the elements of
the dimension--for instance, row labels for a row dimension. A layer dimension allows you to display a
separate two-dimensional table for each category in the layered dimension--for example, a separate table
for each value of minority classification, as shown here. When layers are present, the pivot table can be
thought of as stacked in layers, with only the top layer visible.
Each cell in the table can be specified by a combination of category values. In the example shown here,
the indicated cell is specified by a category value of Male for the Gender dimension, Custodial for the
Employment Category dimension, and No for the Minority Classification dimension.
import spss
spss.StartProcedure("mycompany.com.demoProc")
table = spss.BasePivotTable("Table Title",
"OMS table subtype")
Result
• The first argument to the Append method specifies the type of dimension, using one member
from a set of built-in object properties: spss.Dimension.Place.row for a row dimension,
spss.Dimension.Place.column for a column dimension, and spss.Dimension.Place.layer for
a layer dimension.
• The second argument to Append is a string that specifies the name used to label this dimension in the
displayed table.
• Although not required to append a dimension, it's good practice to store a reference to the newly
created dimension object in a variable. For instance, the variable rowdim1 holds a reference to the
object for the row dimension named rowdim-1. Depending on which approach you use for setting
categories, you may need this object reference.
• The first argument to the Insert method specifies the position within the dimensions of that type (row,
column, or layer). The first position has index 1 (unlike typical Python indexing that starts with 0) and
defines the innermost dimension of that type in the displayed table. Successive integers specify the
next innermost dimension and so on. In the current example, rowdim-3 is inserted at position 2 and
rowdim-1 is moved from position 2 to position 3.
• The second argument to Insert specifies the type of dimension, using one member
from a set of built-in object properties: spss.Dimension.Place.row for a row dimension,
spss.Dimension.Place.column for a column dimension, and spss.Dimension.Place.layer for
a layer dimension.
• The third argument to Insert is a string that specifies the name used to label this dimension in the
displayed table.
• Although not required to insert a dimension, it is good practice to store a reference to the newly created
dimension object to a variable. For instance, the variable rowdim3 holds a reference to the object for the
row dimension named rowdim-3. Depending on which approach you use for setting categories, you may
need this object reference.
Note: Generation of the resulting table requires more code than is shown here.
coldim=table.Append(spss.Dimension.Place.column,"coldim")
rowdim1=table.Append(spss.Dimension.Place.row,"rowdim-1")
rowdim2=table.Append(spss.Dimension.Place.row,"rowdim-2")
cat1=CellText.String("A1")
cat2=CellText.String("B1")
cat3=CellText.String("A2")
cat4=CellText.String("B2")
cat5=CellText.String("C")
cat6=CellText.String("D")
cat7=CellText.String("E")
table.SetCategories(rowdim1,[cat1,cat2])
table.SetCategories(rowdim2,[cat3,cat4])
table.SetCategories(coldim,[cat5,cat6,cat7])
• The statement from spss import CellText allows you to omit the spss prefix when specifying
CellText objects (discussed below), once you have imported the spss module.
Note: Generation of the resulting table requires more code than is shown here.
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table[(row_cat1,col_cat1)] = CellText.Number(11)
table[(row_cat1,col_cat2)] = CellText.Number(12)
table[(row_cat2,col_cat1)] = CellText.Number(21)
table[(row_cat2,col_cat2)] = CellText.Number(22)
• The Append method is used to add a row dimension and then a column dimension to the structure of
the table. The table specified in this example has one row dimension and one column dimension. Notice
that references to the dimension objects created by the Append method are not saved to variables,
contrary to the recommendations in the topic on adding dimensions. When setting cells using the
current approach, these object references are not needed.
• For convenience, variables consisting of CellText objects are created for each of the categories in the
two dimensions.
• Cells are specified by their category values in each dimension. In the tuple (or list) that specifies
the category values--for example, (row_cat1,col_cat1)--the first element corresponds to the first
appended dimension (what we have named "row dimension") and the second element to the second
appended dimension (what we have named "column dimension"). The tuple (row_cat1,col_cat1)
then specifies the cell whose "row dimension" category is "first row" and "column dimension" category
is "first column."
table.SetCategories(rowdim,[row_cat1,row_cat2])
table.SetCategories(coldim,[col_cat1,col_cat2])
table.SetCellsByRow(row_cat1,[CellText.Number(11),
CellText.Number(12)])
table.SetCellsByRow(row_cat2,[CellText.Number(21),
CellText.Number(22)])
• The SetCellsByRow method is called for each of the two categories in the row dimension.
• The first argument to the SetCellsByRow method is the row category for which values are to be set.
The argument must be specified as a CellText object (one of CellText.Number, CellText.String,
CellText.VarName, or CellText.VarValue). When setting row values for a pivot table with
multiple row dimensions, you specify a list of category values for the first argument to SetCellsByRow,
where each element in the list is a category value for a different row dimension.
• The second argument to the SetCellsByRow method is a list or tuple of CellText objects (one of
CellText.Number, CellText.String, CellText.VarName, or CellText.VarValue) that specify
the elements of the row, one element for each column category in the single column dimension. The
first element in the list or tuple will populate the first column category (in this case, col_cat1), the
second will populate the second column category, and so on.
• In this example, Number objects are used to specify numeric values for the cells. Values
will be formatted using the table's default format. Instances of the BasePivotTable class
have an implicit default format of GeneralStat. You can change the default format using the
SetDefaultFormatSpec method, or you can override the default by explicitly specifying the format, as in:
CellText.Number(22,spss.FormatSpec.Correlation). See the topic “Number Class ” on page
31 for more information.
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table[(row_cat1,col_cat1)] = CellText.Number(11)
cellValue = table[(row_cat1,col_cat1)].toNumber()
table[(row_cat2,col_cat2)] = CellText.Number(2*cellValue)
• The toNumber method is used to obtain a numeric representation of the cell with category values
("first row","first column"). The numeric value is stored in the variable cellValue and used to
specify the value of another cell.
• Character representations of numeric values stored as CellText.String objects, such as
CellText.String("11"), are converted to a numeric value by the toNumber method.
Example: String Representations of Cell Values
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table[(row_cat1,col_cat1)] = CellText.String("abc")
cellValue = table[(row_cat1,col_cat1)].toString()
table[(row_cat2,col_cat2)] = CellText.String(cellValue + "d")
• The toString method is used to obtain a string representation of the cell with category values
("first row","first column"). The string value is stored in the variable cellValue and used to
specify the value of another cell.
• Numeric values stored as CellText.Number objects are converted to a string value by the toString
method.
spss.BasePivotTable Methods
The BasePivotTable class has methods that allow you to build complex pivot tables. If you only
need to create a pivot table with a single row and a single column dimension then consider using the
SimplePivotTable method.
Append Method
.Append(place,dimName,hideName, hideLabels). Appends row, column, and layer dimensions
to a pivot table. You use this method, or the Insert method, to create the dimensions
associated with a custom pivot table. The argument place specifies the type of dimension:
spss.Dimension.Place.row for a row dimension, spss.Dimension.Place.column for a column
dimension, and spss.Dimension.Place.layer for a layer dimension. The argument dimName is a
string that specifies the name used to label this dimension in the displayed table. Each dimension
must have a unique name. The argument hideName specifies whether the dimension name is
hidden--by default, it is displayed. Use hideName=True to hide the name. The argument hideLabels
specifies whether category labels for this dimension are hidden--by default, they are displayed. Use
hideLabels=True to hide category labels.
Examples of using the Append method are most easily understood in the context of going through the
steps to create a pivot table. See the topic “General Approach to Creating Pivot Tables ” on page 18 for
more information.
Caption Method
.Caption(caption). Adds a caption to the pivot table. The argument caption is a string specifying the
caption.
Example
CategoryFootnotes Method
.CategoryFootnotes(dimPlace,dimName,category,footnote). Used to add a footnote to a specified
category.
• The argument dimPlace specifies the dimension type associated with the category, using one
member from a set of built-in object properties: spss.Dimension.Place.row for a row dimension,
spss.Dimension.Place.column for a column dimension, and spss.Dimension.Place.layer for
a layer dimension.
• The argument dimName is the string that specifies the dimension name associated with the category.
This is the name specified when the dimension was created by the Append or Insert method.
• The argument category specifies the category and must be a CellText object (one of
CellText.Number, CellText.String, CellText.VarName, or CellText.VarValue).
• The argument footnote is a string specifying the footnote.
Example
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
DimensionFootnotes Method
.DimensionFootnotes(dimPlace,dimName,footnote). Used to add a footnote to a dimension.
• The argument dimPlace specifies the type of dimension, using one member from a set of built-in object
properties: spss.Dimension.Place.row for a row dimension, spss.Dimension.Place.column
for a column dimension, and spss.Dimension.Place.layer for a layer dimension.
• The argument dimName is the string that specifies the name given to this dimension when it was
created by the Append or Insert method.
• The argument footnote is a string specifying the footnote.
Example
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table.DimensionFootnotes(spss.Dimension.Place.column,
"column dimension","A dimension footnote")
Footnotes Method
.Footnotes(categories,footnote). Used to add a footnote to a table cell. The argument categories is a list
or tuple of categories specifying the cell for which a footnote is to be added. Each element in the list or
tuple must be a CellText object (one of CellText.Number, CellText.String, CellText.VarName,
or CellText.VarValue). The argument footnote is a string specifying the footnote.
Example
rowdim=table.Append(spss.Dimension.Place.row,"rowdim")
coldim=table.Append(spss.Dimension.Place.column,"coldim")
table.SetCategories(rowdim,spss.CellText.String("row1"))
table.SetCategories(coldim,spss.CellText.String("column1"))
table[(spss.CellText.String("row1"),spss.CellText.String("column1"))] = \
spss.CellText.String("cell value")
table.Footnotes((spss.CellText.String("row1"),
spss.CellText.String("column1")),
"Footnote for the cell specified by the categories row1 and column1")
• The order in which dimensions are added to the table, either through a call to Append or to Insert,
determines the order in which categories should be specified when providing the dimension coordinates
for a particular cell. In the present example, the dimension rowdim is added first and coldim second, so
the first element of (spss.CellText.String("row1"),spss.CellText.String("column1"))
specifies a category of rowdim and the second element specifies a category of coldim.
GetDefaultFormatSpec Method
.GetDefaultFormatSpec(). Returns the default format for CellText.Number objects. The returned value is
a list with two elements. The first element is the integer code associated with the format. Codes and
associated formats are listed in Table 1 on page 32. For formats with codes 5 (Mean), 12 (Variable),
13 (StdDev), 14 (Difference), and 15 (Sum), the second element of the returned value is the index of
the variable in the active dataset whose format is used to determine details of the resulting format. For all
other formats, the second element is the Python data type None. You can set the default format with the
SetDefaultFormatSpec method.
• Instances of the BasePivotTable class have an implicit default format of GeneralStat.
Example
Insert Method
.Insert(i,place,dimName,hideName, hideLabels). Inserts row, column, and layer dimensions into a
pivot table. You use this method, or the Append method, to create the dimensions associated with
a custom pivot table. The argument i specifies the position within the dimensions of that type (row,
column, or layer). The first position has index 1 and defines the innermost dimension of that type
in the displayed table. Successive integers specify the next innermost dimension and so on. The
argument place specifies the type of dimension: spss.Dimension.Place.row for a row dimension,
spss.Dimension.Place.column for a column dimension, and spss.Dimension.Place.layer for a
layer dimension. The argument dimName is a string that specifies the name used to label this dimension
in the displayed table. Each dimension must have a unique name. The argument hideName specifies
whether the dimension name is hidden--by default, it is displayed. Use hideName=True to hide the
name. The argument hideLabels specifies whether category labels for this dimension are hidden--by
default, they are displayed. Use hideLabels=True to hide category labels.
• The argument i can take on the values 1, 2, ... , n+1 where n is the position of the outermost dimension
(of the type specified by place) created by any previous calls to Append or Insert. For example, after
appending two row dimensions, you can insert a row dimension at positions 1, 2, or 3. You cannot,
however, insert a row dimension at position 3 if only one row dimension has been created.
• The order in which dimensions are created (with the Append or Insert method) determines the order
in which categories should be specified when providing the dimension coordinates for a particular cell
(used when Setting Cell Values or adding Footnotes). For example, when specifying coordinates using
an expression such as (category1,category2), category1 refers to the dimension created by the
first call to Append or Insert, and category2 refers to the dimension created by the second call to
Append or Insert.
Note: The order in which categories should be specified is not determined by dimension positions as
specified by the argument i.
Example
Examples of using the Insert method are most easily understood in the context of going through the
steps to create a pivot table. See the topic “General Approach to Creating Pivot Tables ” on page 18 for
more information.
SetCategories Method
.SetCategories(dim,categories). Sets categories for the specified dimension. The argument dim is a
reference to the dimension object for which categories are to be set. Dimensions are created with the
Append or Insert method. The argument categories is a single value or a sequence of unique values, each
rowdim=table.Append(spss.Dimension.Place.row,"rowdim")
coldim=table.Append(spss.Dimension.Place.column,"coldim")
table.SetCategories(rowdim,[spss.CellText.String("row1"),
spss.CellText.String("row2")])
table.SetCategories(coldim,[spss.CellText.String("column1"),
spss.CellText.String("column2")])
Examples of using the SetCategories method are most easily understood in the context of going
through the steps to create a pivot table. See the topic “General Approach to Creating Pivot Tables ” on
page 18 for more information.
SetCell Method
.SetCell(cell). Sets the value for the cell specified by the currently selected set of category values. The
argument cell is the value, specified as a CellText object (one of CellText.Number, CellText.String,
CellText.VarName, or CellText.VarValue). Category values are selected using the SetCategories
method as shown in the following example.
Example
rowdim = table.Append(spss.Dimension.Place.row,"rowdim")
coldim = table.Append(spss.Dimension.Place.column,"coldim")
# Set the value for the current cell specified by the currently
# selected set of category values.
table.SetCell(spss.CellText.Number(11))
table.SetCategories(rowdim,spss.CellText.String("row2"))
table.SetCategories(coldim,spss.CellText.String("column2"))
# Set the value for the current cell. Its category values are "row2"
# for rowdim and "column2" for coldim.
table.SetCell(spss.CellText.Number(22))
# Set the value for the current cell. Its category values are "row1"
# for rowdim and "column2" for coldim.
table.SetCell(spss.CellText.Number(12))
• In this example, Number objects are used to specify numeric values for the cells. Values
will be formatted using the table's default format. Instances of the BasePivotTable class
have an implicit default format of GeneralStat. You can change the default format using the
SetDefaultFormatSpec method, or you can override the default by explicitly specifying the format, as in:
CellText.Number(22,spss.FormatSpec.Correlation). See the topic “Number Class ” on page
31 for more information.
SetCellsByColumn Method
.SetCellsByColumn(collabels,cells). Sets cell values for the column specified by a set of categories,
one for each column dimension. The argument collabels specifies the set of categories that defines
the column--a single value, or a list or tuple. The argument cells is a tuple or list of cell values.
Column categories and cell values must be specified as CellText objects (one of CellText.Number,
CellText.String, CellText.VarName, or CellText.VarValue).
• For tables with multiple column dimensions, the order of categories in the collabels argument is
the order in which their respective dimensions were added (appended or inserted) to the table. For
example, given two column dimensions coldim1 and coldim2 added in the order coldim1 and coldim2,
the first element in collabels should be the category for coldim1 and the second the category for
coldim2.
• You can only use the SetCellsByColumn method with pivot tables that have one row dimension.
Example
cat1=CellText.String("coldim1:A")
cat2=CellText.String("coldim1:B")
cat3=CellText.String("coldim2:A")
cat4=CellText.String("coldim2:B")
cat5=CellText.String("C")
cat6=CellText.String("D")
table.SetCategories(coldim1,[cat1,cat2])
table.SetCategories(coldim2,[cat3,cat4])
table.SetCategories(rowdim,[cat5,cat6])
table.SetCellsByColumn((cat1,cat3),
[CellText.Number(11),
CellText.Number(21)])
table.SetCellsByColumn((cat1,cat4),
[CellText.Number(12),
CellText.Number(22)])
table.SetCellsByColumn((cat2,cat3),
[CellText.Number(13),
CellText.Number(23)])
table.SetCellsByColumn((cat2,cat4),
[CellText.Number(14),
CellText.Number(24)])
• In this example, Number objects are used to specify numeric values for the cells. Values
will be formatted using the table's default format. Instances of the BasePivotTable class
have an implicit default format of GeneralStat. You can change the default format using the
SetDefaultFormatSpec method, or you can override the default by explicitly specifying the format, as in:
CellText.Number(22,spss.FormatSpec.Correlation). See the topic “Number Class ” on page
31 for more information.
SetCellsByRow Method
.SetCellsByRow(rowlabels,cells). Sets cell values for the row specified by a set of categories, one for
each row dimension. The argument rowlabels specifies the set of categories that defines the row--a
single value, or a list or tuple. The argument cells is a tuple or list of cell values. Row categories
and cell values must be specified as CellText objects (one of CellText.Number, CellText.String,
CellText.VarName, or CellText.VarValue).
• For tables with multiple row dimensions, the order of categories in the rowlabels argument is the order
in which their respective dimensions were added (appended or inserted) to the table. For example,
given two row dimensions rowdim1 and rowdim2 added in the order rowdim1 and rowdim2, the first
element in rowlabels should be the category for rowdim1 and the second the category for rowdim2.
• You can only use the SetCellsByRow method with pivot tables that have one column dimension.
Example
coldim=table.Append(spss.Dimension.Place.column,"coldim")
rowdim1=table.Append(spss.Dimension.Place.row,"rowdim-1")
rowdim2=table.Append(spss.Dimension.Place.row,"rowdim-2")
cat1=CellText.String("rowdim1:A")
cat2=CellText.String("rowdim1:B")
cat3=CellText.String("rowdim2:A")
cat4=CellText.String("rowdim2:B")
cat5=CellText.String("C")
cat6=CellText.String("D")
table.SetCategories(rowdim1,[cat1,cat2])
table.SetCategories(rowdim2,[cat3,cat4])
table.SetCategories(coldim,[cat5,cat6])
table.SetCellsByRow((cat1,cat3),
[CellText.Number(11),
CellText.Number(12)])
table.SetCellsByRow((cat1,cat4),
[CellText.Number(21),
CellText.Number(22)])
table.SetCellsByRow((cat2,cat3),
[CellText.Number(31),
CellText.Number(32)])
table.SetCellsByRow((cat2,cat4),
[CellText.Number(41),
CellText.Number(42)])
• In this example, Number objects are used to specify numeric values for the cells. Values
will be formatted using the table's default format. Instances of the BasePivotTable class
have an implicit default format of GeneralStat. You can change the default format using the
SetDefaultFormatSpec method, or you can override the default by explicitly specifying the format, as in:
CellText.Number(22,spss.FormatSpec.Correlation). See the topic “Number Class ” on page
31 for more information.
Examples of using the SetCellsByRow method are most easily understood in the context of going
through the steps to create a pivot table. See the topic “General Approach to Creating Pivot Tables ” on
page 18 for more information.
table[(CellText.String("row1"),CellText.String("col1"))] = \
CellText.Number(2.37)
table[(CellText.String("row2"),CellText.String("col1"))] = \
CellText.Number(4.34)
• The call to SetDefaultFormatSpec specifies that the format for mean values is to be used as the
default, and that it will be based on the format for the variable with index value 2 in the active dataset.
Subsequent instances of CellText.Number will use this default, so the cell values 2.37 and 4.34 will
be formatted as mean values.
SimplePivotTable Method
.SimplePivotTable(rowdim,rowlabels,coldim,collabels,cells). Creates a pivot table with one row
dimension and one column dimension.
• rowdim. An optional label for the row dimension, given as a string. If empty, the row dimension label is
hidden. If specified, it must be distinct from the value, if any, of the coldim argument.
• rowlabels. An optional list of items to label the rows. Each item must be unique and can be a
character string, a numeric value, or a CellText object (one of CellText.Number, CellText.String,
CellText.VarName, or CellText.VarValue). If provided, the length of this list determines the
number of rows in the table. If omitted, the number of rows is equal to the number of elements in the
argument cells.
• coldim. An optional label for the column dimension, given as a string. If empty, the column dimension
label is hidden. If specified, it must be distinct from the value, if any, of the rowdim argument.
• collabels. An optional list of items to label the columns. Each item must be unique and can be a
character string, a numeric value, or a CellText object (one of CellText.Number, CellText.String,
CellText.VarName, or CellText.VarValue). If provided, the length of this list determines the
number of columns in the table. If omitted, the number of columns is equal to the length of the first
element of cells. If cells is one-dimensional, this implies a table with one column and as many rows as
there are elements in cells. See the examples below for the case where cells is two-dimensional and
collabels is omitted.
• cells. This argument specifies the values for the cells of the pivot table. It consists of a one-
or two-dimensional sequence of items that can be indexed as cells[i] or cells[i][j]. For
example, [1,2,3,4] is a one-dimensional sequence, and [[1,2],[3,4]] is a two-dimensional
sequence. Each element in cells can be a character string, a numeric value, a CellText object (one
of CellText.Number, CellText.String, CellText.VarName, or CellText.VarValue), a Python
time.struct_time object, or a Python datetime.datetime object. Examples showing how the
rows and columns of the pivot table are populated from cells are provided below.
• The number of elements in cells must equal the product of the number of rows and the number of
columns.
import spss
spss.StartProcedure("mycompany.com.demoProc")
Result
import spss
spss.StartProcedure("mycompany.com.demoProc")
Result
Example: Using a Two-Dimensional Sequence for Cells and Omitting Column Labels
import spss
spss.StartProcedure("mycompany.com.demoProc")
Result
Figure 13. Table populated from two-dimensional sequence without specifying column labels
TitleFootnotes Method
.TitleFootnotes(footnote). Used to add a footnote to the table title. The argument footnote is a string
specifying the footnote.
Example
spss.CellText Class
spss.CellText. A class of objects used to create a dimension category or a cell in a pivot table. This class is
only for use with the spss.BasePivotTable class. The CellText class is used to create the following
object types:
• CellText.Number: Used to specify a numeric value.
• CellText.String: Used to specify a string value.
• CellText.VarName: Used to specify a variable name. Use of this object means that settings for the
display of variable names in pivot tables (names, labels, or both) are honored.
• CellText.VarValue: Used to specify a variable value. Use of this object means that settings for the display
of variable values in pivot tables (values, labels, or both) are honored.
Number Class
spss.CellText.Number(value,formatspec,varIndex). Used to specify a numeric value for a category
or a cell in a pivot table. The argument value specifies the numeric value. You can also pass
a string representation of a numeric value, a Python time.struct_time object, or a Python
datetime.datetime object to this argument. The optional argument formatspec is of the form
spss.FormatSpec.format where format is one of those listed in the table below--for example,
spss.FormatSpec.Mean. You can also specify an integer code for formatspec, as in the value 5 for
Mean. The argument varIndex is the index of a variable in the active dataset whose format is used to
determine details of the resulting format. varIndex is only used in conjunction with formatspec and is
required when specifying one of the following formats: Mean, Variable, StdDev, Difference, and
Sum. Index values represent position in the active dataset, starting with 0 for the first variable in file order.
• When formatspec is omitted, the default format is used. You can set the default format with the
SetDefaultFormatSpec method and retrieve the default with the GetDefaultFormatSpec method.
Instances of the BasePivotTable class have an implicit default format of GeneralStat.
• You can obtain a numeric representation of a CellText.Number object using the toNumber method,
and you can use the toString method to obtain a string representation.
• When specifying cell values with Python time.struct_time or datetime.datetime objects, the
value will be displayed in seconds--specifically, the number of seconds from October 14, 1582.
table.Append(spss.Dimension.Place.row,"rowdim")
table.Append(spss.Dimension.Place.column,"coldim")
table[(CellText.String("row1"),CellText.String("col1"))] = \
CellText.Number(25.632,FormatSpec.Mean,2)
table[(CellText.String("row2"),CellText.String("col1"))] = \
CellText.Number(23.785,FormatSpec.Mean,2)
In this example, cell values are displayed in the format used for mean values. The format of the variable
with index 2 in the active dataset is used to determine the details of the resulting format.
String Class
spss.CellText.String(value). Used to specify a string value for a category or a cell in a pivot table. The
argument is the string value. You can also pass a numeric value, and it will be converted to a string.
• You can obtain a string representation of a CellText.String object using the toString method.
For character representations of numeric values stored as CellText.String objects, such as
CellText.String("11"), you can obtain the numeric value using the toNumber method.
Example
table.Append(spss.Dimension.Place.row,"rowdim")
table.Append(spss.Dimension.Place.column,"coldim")
table[(CellText.String("row1"),CellText.String("col1"))] = \
CellText.String("1")
table[(CellText.String("row2"),CellText.String("col1"))] = \
CellText.String("2")
VarName Class
spss.CellText.VarName(index). Used to specify that a category or cell in a pivot table is to be treated as
a variable name. CellText.VarName objects honor display settings for variable names in pivot tables
(names, labels, or both). The argument is the index value of the variable. Index values represent position
in the active dataset, starting with 0 for the first variable in file order.
Example
In this example, row categories are specified as the names of the variables with index values 0 and 1
in the active dataset. Depending on the setting of pivot table labeling for variables in labels, the variable
names, labels, or both will be displayed.
VarValue Class
spss.CellText.VarValue(index,value). Used to specify that a category or cell in a pivot table is to be
treated as a variable value. CellText.VarValue objects honor display settings for variable values in
pivot tables (values, labels, or both). The argument index is the index value of the variable. Index values
represent position in the active dataset, starting with 0 for the first variable in file order. The argument
value is a number (for a numeric variable) or string (for a string variable) representing the value of the
CellText object.
Example
In this example, row categories are specified as the values 1 and 2 of the variable with index value 0 in
the active dataset. Depending on the setting of pivot table labeling for variable values in labels, the values,
value labels, or both will be displayed.
toNumber Method
This method is used to obtain a numeric representation of a CellText.Number object or
a CellText.String object that stores a character representation of a numeric value, as in
CellText.String("123"). Values obtained from this method can be used in arithmetic expressions.
You call this method on a CellText.Number or CellText.String object.
Example
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table[(row_cat1,col_cat1)] = CellText.Number(11)
cellValue = table[(row_cat1,col_cat1)].toNumber()
table[(row_cat2,col_cat2)] = CellText.Number(2*cellValue)
toString Method
This method is used to obtain a string representation of a CellText.String or CellText.Number
object. Values obtained from this method can be used in string expressions. You call this method on a
CellText.String or CellText.Number object.
Example
table.Append(spss.Dimension.Place.row,"row dimension")
table.Append(spss.Dimension.Place.column,"column dimension")
table[(row_cat1,col_cat1)] = CellText.String("abc")
cellValue = table[(row_cat1,col_cat1)].toString()
table[(row_cat2,col_cat2)] = CellText.String(cellValue + "d")
import spss
spss.StartProcedure("demo")
table = spss.BasePivotTable("Warnings ","Warnings")
table.Append(spss.Dimension.Place.row,"rowdim",hideLabels=True)
rowLabel = spss.CellText.String("1")
• The title argument is set to the string "Warnings ", It can be set to an arbitrary value but it cannot be
identical to the templateName value, hence the space at the end of the string.
• The templateName argument must be set to the string "Warnings", independent of the IBM SPSS
Statistics output language.
• A Warnings table has a single row dimension with all labels hidden and can consist of one or more rows.
In this example, the table has a single multi-line row, formatted with a Python triple-quoted string.
Result
spss.BaseProcedure Class
The spss.BaseProcedure class is used to create classes that encapsulate procedures. Procedures
can read the data, perform computations, add new variables and/or new cases to the active dataset,
and produce pivot table output and text blocks in the IBM SPSS Statistics Viewer. Procedures have
almost the same capabilities as built-in IBM SPSS Statistics procedures, such as DESCRIPTIVES
and REGRESSION, but they are written in Python by users. Use of the spss.BaseProcedure class
provides an alternative to encapsulating procedure code within a Python function and explicitly using
an spss.StartProcedure-spss.EndProcedure block for the procedure output. All classes that
encapsulate procedures must inherit from the BaseProcedure class.
The spss.BaseProcedure class has three methods: __init__, execProcedure, and
execUserProcedure. When creating procedure classes you always override the execUserProcedure
method, replacing it with the body of your procedure. You override the __init__ method if you need to
provide arguments other than the procedure name and the optional OMS identifier. You never override
the execProcedure method. It is responsible for calling execUserProcedure to run your procedure as
well as automatically making the necessary calls to spss.StartProcedure and spss.EndProcedure.
The rules governing procedure code contained within the execUserProcedure method are the same
as those for StartProcedure-EndProcedure blocks. See the topic “spss.StartProcedure Function ” on
page 83 for more information.
Example
As an example, we will create a procedure class that calculates group means for a selected variable
using a specified categorical variable to define the groups. The output of the procedure is a pivot
table displaying the group means. For an alternative approach to creating the same procedure, but
making explicit use of spss.StartProcedure-spss.EndProcedure and without the use of the
BaseProcedure class, see the example for the spss.StartProcedure function.
class groupMeans(spss.BaseProcedure):
cur.close()
category2 = spss.CellText.String("Mean")
for cat in sorted(Counts):
category1 = spss.CellText.Number(cat)
table[(category1,category2)] = \
spss.CellText.Number(Totals[cat]/Counts[cat])
• The import statement containing myprocs makes the contents of the Python module myprocs.py
available to the current session (assuming that the module is on the Python search path).
• The call to myprocs.groupMeans creates an instance of the groupMeans class. The variables educ
and salary in /examples/data/Employee data.sav are used as the grouping variable and the variable for
which means are calculated.
• Output from the procedure is associated with the name mycompany.com.groupMeans. This is the name
that appears in the outline pane of the Viewer associated with output produced by the procedure. It is
also the command name associated with this procedure when routing output from this procedure with
spss.CreateXPathDictionary Function
spss.CreateXPathDictionary(handle). Creates an XPath dictionary DOM for the active dataset that can
be accessed with XPath expressions. The argument is a handle name, used to identify this DOM in
subsequent spss.EvaluateXPath and spss.DeleteXPathHandle functions.
Example
handle='demo'
spss.CreateXPathDictionary(handle)
• The XPath dictionary DOM for the current active dataset is assigned the handle name demo. Any
subsequent spss.EvaluateXPath or spss.DeleteXPathHandle functions that reference this
dictionary DOM must use this handle name.
spss.Cursor Class
spss.Cursor(var, accessType, cvtDates, isBinary). Provides the ability to read cases, append cases, and
add new variables to the active dataset.
• The optional argument var specifies a tuple or a list of variable index values representing position in the
active dataset, starting with 0 for the first variable in file order. This argument is used in read or write
mode to specify a subset of variables to return when reading case data from the active dataset. If the
argument is omitted, all variables are returned. The argument has no effect if used in append mode.
• The optional argument accessType specifies one of three usage modes: read ('r'), write ('w'), and
append ('a'). The default is read mode.
• The optional argument cvtDates specifies a set of IBM SPSS Statistics variables with date or datetime
formats to convert to Python datetime.datetime objects when reading data from IBM SPSS
Statistics. The argument is a sequence of variable index values representing position in the active
dataset, starting with 0 for the first variable in file order. If the optional argument var is specified, then
cvtDates must be a subset of the index values specified for var. You can specify to convert all date or
datetime format variables with cvtDates='ALL', or by setting cvtDates to a list or tuple with the single
element 'ALL', as in cvtDates=['ALL']. When 'ALL' is specified in conjunction with var, it refers
to all variables specified in var. If cvtDates is omitted, then no conversions are performed. Variables
included in cvtDates that do not have a date or datetime format are ignored in terms of the conversion.
cvtDates applies to read and write mode and cannot be used in append mode.
Read Mode
This is the default for the Cursor class and provides the ability to read case data from the active dataset.
Read mode is specified with spss.Cursor(accessType='r') or simply spss.Cursor().
Note: For users of a 14.0.x version of the plug-in who are upgrading to a newer version, this mode is
equivalent to spss.Cursor(n) in 14.0.x versions. No changes to your 14.0.x code for the Cursor class
are required to run the code with a newer version.
The Cursor methods fetchone, fetchmany, and fetchall are used to retrieve cases from the active
dataset.
Result
• Cases from the active dataset are returned as a single tuple for fetchone and a list of tuples for
fetchall.
• Each tuple represents the data for one case. For fetchall the tuples are arranged in the same order as
the cases in the active dataset.
• Each element in a tuple contains the data value for a specific variable. The order of variable values
within a tuple is the order specified by the optional argument var to the Cursor class, or file order if var
is omittted.
Result
((1.0, 'a '), (None, 'b '), (3.0, None), (4.0, 'd '))
• String values are right-padded to the defined width of the string variable.
• System-missing values are always converted to the Python data type None.
• By default, user-missing values are converted to the Python data type None. You can use the
SetUserMissingInclude method to specify that user-missing values be treated as valid.
Write Mode
This mode is used to add new variables, along with their case values, to an existing dataset.
It cannot be used to append cases to the active dataset. Write mode is specified with
spss.Cursor(accessType='w').
• All of the methods available in read mode are also available in write mode.
• When adding new variables, the CommitDictionary method must be called after the statements
defining the new variables and prior to setting case values for those variables. You cannot add new
variables to an empty dataset.
• When setting case values for new variables, the CommitCase method must be called for each case that
is modified. The fetchone method is used to advance the record pointer by one case, or you can use
the fetchmany method to advance the record pointer by a specified number of cases.
Note: If a case filter (specified with the FILTER or USE command) is in effect,fetchone and
fetchmany advance the record pointer through the set of cases that have not been filtered out.
• Changes to the active dataset do not take effect until the cursor is closed.
• Write mode supports multiple data passes and allows you to add new variables on each pass. In the
case of multiple data passes where you need to add variables on a data pass other than the first, you
must call the AllocNewVarsBuffer method to allocate the buffer size for the new variables. When
used, AllocNewVarsBuffer must be called before reading any data with fetchone, fetchmany, or
fetchall.
• The Cursor methods SetVarNameAndType and SetOneVarNameAndType are used to add new
variables to the active dataset, and the methods SetValueChar and SetValueNumeric are used to set
case values.
Example
In this example, we create a new numeric variable and a new string variable and set their values for all
cases.
• An instance of the Cursor class in write mode is created and assigned to the variable cur.
• The SetVarNameAndType method is used to add two new variables to the active dataset. var4 is a
numeric variable and strvar is a string variable of width 8.
DATA LIST FREE /code (A1) loc (A3) emp (F) dtop (F) ltop (F).
BEGIN DATA
H NY 151 127 24
W CHI 17 4 0
S CHI 9 3 6
W ATL 12 3 0
W SDG 13 4 0
S ATL 10 3 7
S SDG 11 3 8
END DATA.
BEGIN PROGRAM.
import spss
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['emp_est','dtop_est','ltop_est'],[0,0,0])
cur.SetVarFormat('emp_est',5,2,0)
cur.SetVarFormat('dtop_est',5,2,0)
cur.SetVarFormat('ltop_est',5,2,0)
cur.CommitDictionary()
for i in range(cur.GetCaseCount()):
row=cur.fetchone()
if (row[0].lower()=='s'):
cur.SetValueNumeric('emp_est',1.2*row[2])
cur.SetValueNumeric('dtop_est',1.2*row[3])
cur.SetValueNumeric('ltop_est',1.2*row[4])
cur.CommitCase()
cur.close()
END PROGRAM.
• Because we will be adding a new variable on the second data pass, the AllocNewVarsBuffer method
is called to allocate the required space. In the current example, we are creating a single numeric
variable, which requires eight bytes.
• The first for loop is used to read the data and total the case values.
• After the data pass, the reset method must be called prior to defining new variables.
• The second data pass (second for loop) is used to add the mean value of the data as a new variable.
• An instance of the Cursor class in append mode is created and assigned to the variable cur.
• The SetValueNumeric method is used to set the case values of var1 and var3 for two new cases. No
value is specified for var2. The CommitCase method is called to commit the values for each case.
• The EndChanges method is called to commit the new cases to the cursor.
spss.Cursor Methods
Each usage mode of the Cursor class supports its own set of methods, as shown in the table below.
Descriptions of each method follow.
AllocNewVarsBuffer Method
.AllocNewVarsBuffer(bufSize). Specifies the buffer size, in bytes, to use when adding new variables in the
context of multiple data passes. The argument bufSize is a positive integer large enough to accommodate
all new variables to be created by a given write cursor. Each numeric variable requires eight bytes. For
each string variable, you should allocate a size that is an integer multiple of eight bytes, and large enough
to store the defined length of the string (one byte per character). For example, you would allocate eight
bytes for strings of length 1–8 and 16 bytes for strings of length 9–16.
• This method is only available in write mode.
• AllocNewVarsBuffer is required in the case of multiple data passes when you need to add variables
on a data pass other than the first. When used, it must be called before reading any data with
fetchone, fetchmany, or fetchall.
• AllocNewVarsBuffer can only be called once for a given write cursor instance.
• Specifying a larger buffer size than is required has no effect on the result.
For an example of the AllocNewVarsBuffer method, see the example on multiple data passes in the
topic on “Write Mode ” on page 39.
close Method
.close(). Closes the cursor. You cannot use the spss.Submit function while a data cursor is open. You
must close or delete the cursor first.
• This method is available in read, write, or append mode.
• When appending cases, you must call the EndChanges method before the close method.
• Cursors are implicitly closed at the end of a BEGIN PROGRAM-END PROGRAM block.
Example
cur=spss.Cursor()
data=cur.fetchall()
cur.close()
CommitCase Method
.CommitCase(). Commits changes to the current case in the current cursor. This method must be called
for each case that is modified, including existing cases modified in write mode and new cases created in
append mode.
• This method is available in write or append mode.
• When working in write mode, you advance the record pointer by calling the fetchone method. To
modify the first case, you must first call fetchone.
• When working in append mode, the cursor is ready to accept values for a new record (using
SetValueNumeric and SetValueChar) once CommitCase has been called for the previous record.
• Changes to the active dataset take effect when the cursor is closed.
For an example of using CommitCase in write mode, see the topic on write mode “Write Mode ” on
page 39. For an example of using CommitCase in append mode, see the topic on append mode “Append
Mode ” on page 41.
EndChanges Method
.EndChanges(). Specifies the end of appending new cases. This method must be called before the cursor
is closed.
• This method can only be called once for a given Cursor instance and is only available in append mode.
• Changes to the active dataset take effect when the cursor is closed.
For an example of using EndChanges, see the topic on append mode “Append Mode ” on page 41.
fetchall Method
.fetchall(). Fetches all (remaining) cases from the active dataset, or if there are splits, the remaining cases
in the current split. If there are no remaining rows, the result is an empty tuple.
• This method is available in read or write mode.
• When used in write mode, calling fetchall will position the record pointer at the last case of the active
dataset, or if there are splits, the last case of the current split.
• Cases from the active dataset are returned as a list of tuples. Each tuple represents the data for one
case, and the tuples are arranged in the same order as the cases in the active dataset. Each element in
a tuple contains the data value for a specific variable. The order of variable values within a tuple is the
order specified by the variable index values in the optional argument n to the Cursor class, or file order
if n is omitted. For example, if n=[5,2,7] the first tuple element is the value of the variable with index
value 5, the second is the variable with index value 2, and the third is the variable with index value 7.
• String values are right-padded to the defined width of the string variable.
• System-missing values are always converted to the Python data type None.
• By default, user-missing values are converted to the Python data type None. You can use the
SetUserMissingInclude method to specify that user-missing values be treated as valid.
• Values of variables with time formats are returned as integers representing the number of seconds from
midnight.
• By default, values of variables with date or datetime formats are returned as integers representing the
number of seconds from October 14, 1582. You can specify to convert values of those variables to
Python datetime.datetime objects with the cvtDates argument to the spss.Cursor function. See
the topic “spss.Cursor Class ” on page 37 for more information.
• If a weight variable has been defined for the active dataset, then cases with zero, negative, or missing
values for the weighting variable are skipped when fetching data with fetchone, fetchall, or
Result
Result
fetchmany Method
.fetchmany(n). Fetches the next n cases from the active dataset, where n is a positive integer. If the value
of n is greater than the number of remaining cases (and the dataset does not contain splits), it returns
the value of all the remaining cases. In the case that the active dataset has splits, if n is greater than the
number of remaining cases in the current split, it returns the value of the remaining cases in the split. If
there are no remaining cases, the result is an empty tuple.
• This method is available in read or write mode.
• When used in write mode, calling fetchmany(n) will position the record pointer at case n of the active
dataset. In the case that the dataset has splits and n is greater than the number of remaining cases in
the current split, fetchmany(n) will position the record pointer at the end of the current split.
• Cases from the active dataset are returned as a list of tuples. Each tuple represents the data for one
case, and the tuples are arranged in the same order as the cases in the active dataset. Each element in
a tuple contains the data value for a specific variable. The order of variable values within a tuple is the
order specified by the variable index values in the optional argument n to the Cursor class, or file order
if n is omitted. For example, if n=[5,2,7] the first tuple element is the value of the variable with index
value 5, the second is the variable with index value 2, and the third is the variable with index value 7.
• String values are right-padded to the defined width of the string variable.
• System-missing values are always converted to the Python data type None.
Result
fetchone Method
.fetchone(). Fetches the next row (case) from the active dataset. The result is a single tuple or the Python
data type None after the last row has been read. A value of None is also returned at a split boundary. In
this case, a subsequent call to fetchone will retrieve the first case of the next split group.
• This method is available in read or write mode.
• Each element in the returned tuple contains the data value for a specific variable. The order of variable
values in the tuple is the order specified by the variable index values in the optional argument n to the
Cursor class, or file order if n is omitted. For example, if n=[5,2,7] the first tuple element is the value
of the variable with index value 5, the second is the variable with index value 2, and the third is the
variable with index value 7.
• String values are right-padded to the defined width of the string variable.
• System-missing values are always converted to the Python data type None.
• By default, user-missing values are converted to the Python data type None. You can use the
SetUserMissingInclude method to specify that user-missing values be treated as valid.
• Values of variables with time formats are returned as integers representing the number of seconds from
midnight.
• By default, values of variables with date or datetime formats are returned as integers representing the
number of seconds from October 14, 1582. You can specify to convert values of those variables to
Python datetime.datetime objects with the cvtDates argument to the spss.Cursor function. See
the topic “spss.Cursor Class ” on page 37 for more information.
• If a weight variable has been defined for the active dataset, then cases with zero, negative, or missing
values for the weighting variable are skipped when fetching data with fetchone, fetchall, or
Result
IsEndSplit Method
.IsEndSplit(). Indicates if the cursor position has crossed a split boundary. The result is Boolean—True
if a split boundary has been crossed, otherwise False. This method is used in conjunction with the
SplitChange function when creating custom pivot tables from data with splits.
• This method is available in read or write mode.
• The value returned from the fetchone method is None at a split boundary. Once a split has been
detected, you will need to call fetchone again to retrieve the first case of the next split group.
• IsEndSplit returns True when the end of the dataset has been reached. Although a split boundary and
the end of the dataset both result in a return value of True from IsEndSplit, the end of the dataset
is identified by a return value of None from a subsequent call to fetchone, as shown in the following
example.
Example
BEGIN PROGRAM.
import spss
i=0
cur=spss.Cursor()
while True:
cur.fetchone()
i+=1
if cur.IsEndSplit():
# Try to fetch the first case of the next split group
if not None==cur.fetchone():
print "Found split end. New split begins at case: ", i
else:
#There are no more cases, so quit
break
cur.close()
END PROGRAM.
reset Method
.reset(). Resets the cursor.
• This method is available in read, write, or append mode.
• In read and write modes, reset moves the record pointer to the first case, allowing multiple data
passes. In append mode, it deletes the current cursor instance and creates a new one.
• When executing multiple data passes, the reset method must be called prior to defining new variables
on subsequent passes. For an example, see the topic on write mode.
import spss
cur=spss.Cursor()
data=cur.fetchall()
cur.reset()
data10=cur.fetchmany(10)
cur.close()
SetFetchVarList
.SetFetchVarList(var). Resets the list of variables to return when reading case data from the active
dataset. The argument var is a list or tuple of variable index values representing position in the active
dataset, starting with 0 for the first variable in file order.
• This method is available in read or write mode.
Example
SetOneVarNameAndType Method
.SetOneVarNameAndType(varName,varType). Creates one new variable in the active dataset. The
argument varName is a string that specifies the name of the new variable. The argument varType is
an integer specifying the variable type of the new variable. You can create multiple variables with a single
call using the SetVarNameAndType method.
• This method is only available in write mode.
• Numeric variables are specified by a value of 0 for the variable type. String variables are specified with a
type equal to the defined length of the string (maximum of 32767).
• Use of the SetOneVarNameAndType method requires the AllocNewVarsBuffer method to allocate
space for the variable.
Example
SetUserMissingInclude Method
.SetUserMissingInclude(incMissing). Specifies the treatment of user-missing values read from the active
dataset. The argument is a Boolean with True specifying that user-missing values be treated as valid. A
value of False specifies that user-missing values should be converted to the Python data type None.
• By default, user-missing values are converted to the Python data type None.
BEGIN PROGRAM.
import spss
cur=spss.Cursor()
print cur.fetchall()
cur.close()
END PROGRAM.
Result
((1.0, 'a '), (None, 'b '), (3.0, None), (None, 'd '))
This second BEGIN PROGRAM block demonstrates the behavior when user-missing values are treated as
valid.
BEGIN PROGRAM.
import spss
cur=spss.Cursor()
cur.SetUserMissingInclude(True)
print cur.fetchall()
cur.close()
END PROGRAM.
Result
((1.0, 'a '), (None, 'b '), (3.0, ' '), (0.0, 'd '))
SetValueChar Method
.SetValueChar(varName,varValue). Sets the value for the current case for a string variable. The argument
varName is a string specifying the name of a string variable. The argument varValue is a string specifying
the value of this variable for the current case.
• This method is available in write or append mode.
• The CommitCase method must called for each case that is modified. This includes new cases created in
append mode.
Example
SetVarAlignment Method
.SetVarAlignment(varName,alignment). Sets the alignment of data values in the Data Editor for a new
variable. It has no effect on the format of the variables or the display of the variables or values in other
windows or printed results. The argument varName is a string specifying the name of a new variable. The
argument alignment is an integer and can take on one of the following values: 0 (left), 1 (right), 2 (center).
• This method is only available in write mode.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarAlignment('numvar',0)
cur.CommitDictionary()
cur.close()
SetVarAttributes Method
.SetVarAttributes(varName,attrName,attrValue,index). Sets a value in an attribute array for a new
variable. The argument varName is a string specifying the name of a new variable. The argument attrName
is a string specifying the name of the attribute array. The argument attrValue is a string specifying the
attribute value, and index is the index position in the array, starting with the index 0 for the first element in
the array.
• This method is only available in write mode.
• An attribute array with one element is equivalent to an attribute that is not specified as an array.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarAttributes('numvar','myattribute','first element',0)
cur.SetVarAttributes('numvar','myattribute','second element',1)
cur.CommitDictionary()
cur.close()
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['strvar'],[8])
cur.SetVarCMissingValues('strvar',' ','NA')
cur.CommitDictionary()
cur.close()
SetVarCValueLabel Method
.SetVarCValueLabel(varName,value,label). Sets the value label of a single value for a new string variable.
The argument varName is a string specifying the name of a new string variable. The arguments value and
label are strings specifying the value and the associated label. Use the SetVarNValueLabel method to set
value labels for new numeric variables.
• This method is only available in write mode.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['strvar'],[8])
cur.SetVarCValueLabel('strvar','f','female')
cur.CommitDictionary()
cur.close()
SetVarFormat Method
.SetVarFormat(varName,type,width,decimals). Sets the display format for a new variable. The argument
varName is a string specifying the name of a new variable. The argument type is an integer that specifies
one of the available format types (see Appendix A, “Variable Format Types ,” on page 229). The argument
width is an integer specifying the defined width, which must include enough positions to accommodate
any punctuation characters such as decimal points, commas, dollar signs, or date and time delimiters.
The optional argument decimals is an integer specifying the number of decimal digits for numeric formats.
Allowable settings for decimal and width depend on the specified type. For a list of the minimum and
maximum widths and maximum decimal places for commonly used format types, see Variable Types and
Formats in the Universals section of the Command Syntax Reference, available in PDF from the Help menu
and also integrated into the overall Help system.
• This method is only available in write mode.
• Setting the argument width for a string variable will not change the defined length of the string. If the
specified value does not match the defined length, it is forced to be the defined length.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarFormat('numvar',5,2,0)
cur.CommitDictionary()
cur.close()
SetVarLabel Method
.SetVarLabel(varName,varLabel). Sets the variable label for a new variable. The argument varName is a
string specifying the name of a new variable. The argument varLabel is a string specifying the label.
• This method is only available in write mode.
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarLabel('numvar','New numeric variable')
cur.CommitDictionary()
cur.close()
SetVarMeasureLevel Method
.SetVarMeasureLevel(varName,measureLevel). Sets the measurement level for a new variable. The
argument varName is a string specifying the name of a new variable. The argument measureLevel is
an integer specifying the measurement level: 2 (nominal), 3 (ordinal), 4 (scale).
• This method is only available in write mode.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarMeasureLevel('numvar',3)
cur.CommitDictionary()
cur.close()
SetVarNameAndType Method
.SetVarNameAndType(varName,varType). Creates one or more new variables in the active dataset. The
argument varName is a list or tuple of strings that specifies the name of each new variable. The argument
varType is a list or tuple of integers specifying the variable type of each variable named in varName.
varName and varType must be the same length. For creating a single variable you can also use the
SetOneVarNameAndType method.
• This method is only available in write mode.
• Numeric variables are specified by a value of 0 for the variable type. String variables are specified with a
type equal to the defined length of the string (maximum of 32767).
Example
SetVarNMissingValues Method
.SetVarNMissingValues(varName,missingFormat,missingVal1,missingVal2,missingVal3). Sets user-
missing values for a new numeric variable. The argument varName is a string specifying the name of
a new numeric variable. The argument missingFormat has the value 0 for a discrete list of missing values
(for example, 0, 9, 99), the value 1 for a range of missing values (for example, 9–99), and the value 2 for
a combination of a discrete value and a range (for example, 0 and 9–99). Use the SetVarCMissingValues
method to set missing values for new string variables.
• This method is only available in write mode.
• To specify LO and HI in missing value ranges, use the values returned by the spss.GetSPSSLowHigh
function.
Examples
Specify the three discrete missing values 0, 9, and 99 for a new variable.
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarNMissingValues('numvar',0,0,9,99)
cur.CommitDictionary()
cur.close()
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarNMissingValues('numvar',1,9,99)
cur.CommitDictionary()
cur.close()
Specify the range of missing values 9–99 and the discrete missing value 0 for a new variable.
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarNMissingValues('numvar',2,9,99,0)
cur.CommitDictionary()
cur.close()
SetVarNValueLabel Method
.SetVarNValueLabel(varName,value,label). Sets the value label of a single value for a new variable. The
argument varName is a string specifying the name of a new numeric variable. The argument value is
a numeric value and label is the string specifying the label for this value. Use the SetVarCValueLabel
method to set value labels for new string variables.
• This method is only available in write mode.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['numvar'],[0])
cur.SetVarNValueLabel('numvar',1,'female')
cur.CommitDictionary()
cur.close()
SetVarRole Method
.SetVarRole(varName,varRole). Sets the role for a new variable. The argument varName is a string
specifying the name of a new variable. The argument varRole is a string specifying the role: "Input",
"Target", "Both", "None", "Partition" or "Split".
• This method is only available in write mode.
Example
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['targetvar'],[0])
cur.SetVarRole('targetvar','Target')
cur.CommitDictionary()
cur.close()
spss.Dataset Class
spss.Dataset(name,hidden,cvtDates). Provides the ability to create new datasets, read from existing
datasets, and modify existing datasets. A Dataset object provides access to the case data and variable
len(datasetObj)
Note: Datasets that are not required outside of the data step or procedure in which they were accessed
or created should be closed prior to ending the data step or procedure in order to free the resources
allocated to the dataset. This is accomplished by calling the close method of the Dataset object.
Example: Creating a New Dataset
BEGIN PROGRAM.
import spss
spss.StartDataStep()
datasetObj = spss.Dataset(name=None)
datasetObj.varlist.append('numvar',0)
datasetObj.varlist.append('strvar',1)
datasetObj.varlist['numvar'].label = 'Sample numeric variable'
datasetObj.varlist['strvar'].label = 'Sample string variable'
datasetObj.cases.append([1,'a'])
datasetObj.cases.append([2,'b'])
spss.EndDataStep()
END PROGRAM.
• You add variables to a dataset using the append (or insert) method of the VariableList object
associated with the dataset. The VariableList object is accessed from the varlist property of the
• The code newdsObj = spss.Dataset(name=None) creates a new dataset. The name of the dataset
is available from the name property, as in newdsObj.name. In this example, the names of the new
datasets are stored to the Python dictionary dsNames.
• To save new datasets created with the Dataset class, use the SAVE command after calling
spss.EndDataStep. In this example, DATASET ACTIVATE is used to activate each new dataset, using
the dataset names stored in dsNames.
Example: Modifying Case Values
• The two datasets are first sorted by the variable id which is common to both datasets.
• Since DATA LIST creates unnamed datasets (the same is true for GET), the datasets are named using
DATASET NAME so that you can refer to them when calling spss.Dataset.
• datasetObj1 and datasetObj2 are Dataset objects associated with the two datasets empdata1
and empdata2 to be compared.
• The code datasetObj1.cases[i] returns case number i from empdata1. The code
datasetObj2.cases[i,0:nvars] returns the slice of case number i from empdata2 that includes
the variables with indexes 0,1,...,nvars-1.
• The new variable match, added to empdata2, is set to 1 for cases that are identical and 0 otherwise.
cases Property
The cases property of a Dataset object returns an instance of the CaseList class. The CaseList class
provides access to the cases in the associated dataset, allowing you to read existing cases, modify case
values, and add new cases. See the topic “CaseList Class ” on page 60 for more information.
Example
import spss
spss.StartDataStep()
datasetObj = spss.Dataset('data1')
caseListObj = datasetObj.cases
spss.EndDataStep()
import spss
spss.StartDataStep()
datasetObj = spss.Dataset('data1')
datasetName = datasetObj.name
spss.EndDataStep()
varlist Property
The varlist property of a Dataset object returns an instance of the VariableList class. The
VariableList class provides access to the variables in the associated dataset, allowing you to retrieve
the properties of existing variables, modify variable properties, and add new variables to the dataset. See
the topic “VariableList Class ” on page 63 for more information.
Example
import spss
spss.StartDataStep()
datasetObj = spss.Dataset('data1')
varListObj = datasetObj.varlist
spss.EndDataStep()
dataFileAttributes Property
The dataFileAttributes property of a Dataset object gets or sets datafile attributes for the dataset.
The dataFileAttributes property behaves like a Python dictionary in terms of getting, setting, and
deleting values. A Python dictionary consists of a set of keys, each of which has an associated value that
can be accessed simply by specifying the key. In the case of datafile attributes, each key is the name of an
attribute and the associated value is the value of the attribute, which can be a single value or a list or tuple
of values. A list or tuple of values specifies an attribute array.
• When setting attributes, attribute names and values must be given as quoted strings.
Retrieving Datafile Attributes. You retrieve datafile attributes for a dataset from the
dataFileAttributes property of the associated Dataset object. You can retrieve the value of a
particular attribute by specifying the attribute name, as in:
dsObj = spss.Dataset()
attr = dsObj.dataFileAttributes['attrName']
dsObj = spss.Dataset()
for attrName, attrValue in dsObj.dataFileAttributes.data.iteritems():
print attrName, attrValue
Adding and Modifying Datafile Attributes. You can add new datafile attributes and modify existing ones.
For example:
dsObj.dataFileAttributes['attrName'] = 'value'
• If the attribute attrName exists, it is updated with the specified value. If the attribute attrName doesn't
exist, it is added to any existing ones for the dataset.
Resetting Datafile Attributes. You can reset the datafile attributes associated with a dataset. For
example:
dsObj.dataFileAttributes = {'attr1':'value','attr2':['val1','val2']}
multiResponseSet Property
The multiResponseSet property of a Dataset object gets or sets multiple response sets for the
dataset. The multiResponseSet property behaves like a Python dictionary in terms of getting, setting,
and deleting values. A Python dictionary consists of a set of keys, each of which has an associated value
that can be accessed simply by specifying the key. In the case of multiple response sets, each key is the
name of a set and the associated value specifies the details of the set.
• The multiple response set name is a string of maximum length 63 bytes that must follow IBM SPSS
Statistics variable naming conventions. If the specified name does not begin with a dollar sign ($), then
one is added. If the name refers to an existing set, the set definition is overwritten.
• When setting a multiple response set, the details of the set are specified as a list or tuple with the
following elements in the presented order.
mrsetLabel. A string specifying a label for the set. The value cannot be wider than the limit for IBM
SPSS Statistics variable labels.
mrsetCodeAs. An integer or string specifying the variable coding: 1 or "Categories" for multiple
category sets, 2 or "Dichotomies" for multiple dichotomy sets.
mrsetCountedValue. A string specifying the value that indicates the presence of a response for a
multiple dichotomy set. This is also referred to as the “counted” value. If the set type is numeric, the
value must be a string representation of an integer. If the set type is string, the counted value, after
trimming trailing blanks, cannot be wider than the narrowest elementary variable.
varNames. A tuple or list of strings specifying the names of the elementary variables that define the set
(the list must include at least two variables).
• When getting a multiple response set, the result is a tuple of 5 elements. The first element is the
label, if any, for the set. The second element specifies the variable coding--'Categories' or 'Dichotomies'.
The third element specifies the counted value and only applies to multiple dichotomy sets. The fourth
element specifies the data type--'Numeric' or 'String'. The fifth element is a list of the elementary
variables that define the set.
Retrieving Multiple Response Sets. You retrieve multiple response sets for a dataset from the
multiResponseSet property of the associated Dataset object. You retrieve the value of a particular set
by specifying the set name, as in:
dsObj = spss.Dataset()
mrset = dsObj.multiResponseSet['setName']
You can iterate through the multiple response sets using the data property, as in:
dsObj = spss.Dataset()
for name, set in dsObj.multiResponseSet.data.iteritems():
print name, set
Adding and Modifying Multiple Response Sets. You can add new multiple response sets and modify
details of existing ones. For example:
dsObj.multiResponseSet['$mltnews'] = \
["News Sources",2,"1",["Newspaper","TV","Web"]]
• If the set $mltnews exists, it is updated with the specified values. If the set $mltnews doesn't exist, it is
added to any existing ones for the dataset.
dsObj.multiResponseSet = \
{'$mltnews':["News Sources",2,"1",["Newspaper","TV","Web"]],
'$mltent':["Entertainment Sources",2,"1",["TV","Movies","Theatre","Music"]]}
• You reset the multiple response sets by setting the multiResponseSet property to a new Python
dictionary. Any existing multiple response sets are cleared and replaced with the specified ones.
Deleting Multiple Response Sets. You can delete a particular multiple response set or all sets. For
example:
cache Property
The cache property of a Dataset object specifies whether caching is used when cases in the associated
dataset are read or modified. Caching typically improves performance when cases are modified in a
random manner. It is not recommended when cases are read or modified sequentially.
• The cache property is Boolean, where True specifies that caching is used. The default is False.
• When cache=True, you cannot make the following changes: append or insert cases, add or delete
variables, change the variable type.
• The value of the cache property can be modified over the life of a Dataset object. Setting
cache=False commits any changes that were specified while cache was set to True.
• The cache property is available for release 22 Fix Pack 1 and higher.
Example
import spss
spss.StartDataStep()
datasetObj = spss.Dataset('data1')
datasetObj.cache = True
spss.EndDataStep()
optimized Property
Note: This property is deprecated for release 22 Fix Pack 1 and higher. Please use the cache property
instead.
close Method
.close(). Closes the dataset. This method closes a dataset accessed through or created by the Dataset
class. It cannot be used to close an arbitrary open dataset. When used, it must be called prior to
EndDataStep or EndProcedure.
• If the associated dataset is not the active dataset, that dataset is closed and no longer available in the
session. The associated dataset will, however, remain open outside of the data step or procedure in
which it was created if the close method is not called.
• If the associated dataset is the active dataset, the association with the dataset's name is broken. The
active dataset remains active but has no name.
Note: Datasets that are not required outside of the data step or procedure in which they were accessed
or created should be closed prior to ending the data step or procedure in order to free the resources
allocated to the dataset.
Example
import spss
spss.StartDataStep()
datasetObj1 = spss.Dataset()
datasetObj2 = datasetObj1.deepCopy(name="copy1")
deepCopy Method
.deepCopy(name). Creates a copy of the Dataset instance as well as a copy of the dataset associated with
the instance. The argument is required and specifies the name of the new dataset, as a quoted string.
The name cannot be the name of the dataset being copied or a blank string. If '*' is specified the copy
becomes the active dataset with a name that is automatically generated. You can retrieve the dataset
name from the name property of the new Dataset instance.
Example
import spss
spss.StartDataStep()
datasetObj1 = spss.Dataset()
# Make a copy of the active dataset and assign it the name "copy1"
datasetObj2 = datasetObj1.deepCopy(name="copy1")
spss.EndDataStep()
CaseList Class
The CaseList class provides access to the cases in a dataset, allowing you to read existing cases, modify
case values, and add new cases. You get an instance of the CaseList class from the cases property of
the Dataset class, as in:
datasetObj = spss.Dataset('data1')
caseListObj = datasetObj.cases
The number of cases in a CaseList instance, which is also the number of cases in the associated
dataset, is available using the len function, as in:
len(caseListObj)
Note: An instance of the CaseList class can only be created within a data step, and cannot be used
outside of the data step in which it was created. Data steps are initiated with the spss.StartDataStep
function.
Looping through the cases in an instance of CaseList. You can loop through the cases in an instance of
the CaseList class. For example:
• On each iteration of the loop, row is a case from the associated dataset.
Note: The CaseList class does not provide any special handling for datasets with split groups--it simply
returns all cases in the dataset. If you need to differentiate the data in separate split groups, consider
using the Cursor class to read your data, or you may want to use the spss.GetSplitVariableNames
function to manually process the split groups.
Accessing specific cases and case values. You can access a specific case or a range of cases, and you
can specify a variable or a range of variables within those cases. The result is a list, even if accessing the
value of a single variable within a single case.
• System-missing values are returned as the Python data type None.
• Values of variables with TIME and DTIME formats are returned as integers representing the number of
seconds in the time interval.
• By default, values of variables with date or datetime formats are returned as integers representing the
number of seconds from October 14, 1582. You can specify to convert values of those variables to
Python datetime.datetime objects with the cvtDates argument to the Dataset class. See the topic
“spss.Dataset Class ” on page 53 for more information.
Example: Accessing a Single Case
oneCase = datasetObj.cases[0]
Case values are returned as a list where each element of the list is the value of the associated variable.
Example: Accessing a Single Value Within a Case
You can access the value for a single variable within a case by specifying the case number and the index
of the variable (index values represent position in the active dataset, starting with 0 for the first variable in
file order). The following gets the value of the variable with index 1 for case number 0.
oneValue = datasetObj.cases[0,1]
# Get the values for variables with index values 0,1, and 2
# for case number 0
data = datasetObj.cases[0,0:3]
# Get the value for the variable with index 1 for case numbers 0,1, and 2
data = datasetObj.cases[0:3,1]
# Get the values for the variables with index values 1,2 and 3
# for case numbers 4,5, and 6
data = datasetObj.cases[4:7,1:4]
value = datasetObj.cases[-1,-2]
Modifying case values. You can modify the values for a specific case or a range of cases, and you can set
the value of a particular variable or a range of variables within those cases.
• Values of None are converted to system-missing for numeric variables and blanks for string variables.
• Values of numeric variables with a date or datetime format should be specified as Python
time.struct_time or datetime.datetime objects, which are then converted to the appropriate
IBM SPSS Statistics value. Values of variables with TIME and DTIME formats should be specified as the
number of seconds in the time interval.
Example: Setting Values for a Single Case
Values for a single case are provided as a list or tuple of values. The first element corresponds to the first
variable in file order, the second element corresponds to the second variable in file order, and so on. Case
numbers start from 0.
datasetObj.cases[1] = [35,150,100,2110,19,2006,3,4]
datasetObj.cases[12,0] = 14
# Set the values for variables with index values 5,6, and 7 for
# case number 34
datasetObj.cases[34,5:8] = [70,1,4]
# Set the value for the variable with index 5 for case numbers 0,1, and 2
datasetObj.cases[0:3,5] = [70,72,71]
# Set the values for the variables with index values 5 and 6 for
# case numbers 4,5, and 6
datasetObj.cases[4:7,5:7] = ([70,1],[71,2],[72,2])
datasetObj.cases[-1,-2] = 8
Deleting cases. You can delete a specified case from the CaseList object, which results in deleting that
case from the associated dataset. For example:
del datasetObj.cases[0]
append Method
.append(case). Appends a new case to the associated dataset and appends an element representing the
case to the corresponding CaseList instance. The argument case is a tuple or list specifying the case
values. The first element in the tuple or list is the value for the first variable in file order, the second is the
value of the second variable in file order and so on.
• The elements of case can be numeric or string values and must match the variable type of the
associated variable. Values of None are converted to system-missing for numeric variables and blanks
for string variables.
• Values of numeric variables with a date or datetime format should be specified as Python
time.struct_time or datetime.datetime objects, which are then converted to the appropriate
IBM SPSS Statistics value. Values of variables with TIME and DTIME formats should be specified as the
number of seconds in the time interval.
Example
VariableList Class
The VariableList class provides access to the variables in a dataset, allowing you to get and set
properties of existing variables, as well as add new variables to the dataset. You get an instance of the
VariableList class from the varlist property of the Dataset class, as in:
datasetObj = spss.Dataset('data1')
varListObj = datasetObj.varlist
The number of variables in a VariableList instance, which is also the number of variables in the
associated dataset, is available using the len function, as in:
len(varListObj)
Note: An instance of the VariableList class can only be created within a data step, and cannot be used
outside of the data step in which it was created. Data steps are initiated with the spss.StartDataStep
function.
Looping through the variables in an instance of VariableList. You can loop through the variables in
an instance of the VariableList class, obtaining a Variable object (representing the properties of a
single variable) on each iteration. For example:
• On each iteration of the loop, var is an instance of the Variable class, representing a particular
variable in the VariableList instance. The Variable class allows you to get and set variable
properties, like the measurement level and missing values. See the topic “Variable Class ” on page
65 for more information.
Deleting a variable. You can delete a specified variable from the VariableList instance, which results
in deleting it from the associated dataset. The variable to be deleted can be specified by name or index.
For example:
append Method
.append(name,type). Appends a new variable to the associated dataset and appends a corresponding
Variable object to the associated VariableList instance. The argument name specifies the variable name.
The argument type is optional and specifies the variable type--numeric or string. The default is numeric.
• Numeric variables are specified by a value of 0 for the variable type. String variables are specified with a
type equal to the defined length of the string (maximum of 32767).
• The properties of the new variable are set using the Variable object created by the append method.
See the topic “Variable Class ” on page 65 for more information.
Example
insert Method
.insert(name,type,index). Inserts a new variable into the associated dataset and inserts a corresponding
Variable object into the associated VariableList instance. The argument name specifies the variable name.
The optional argument type specifies the variable type--numeric or string. If type is omitted, the variable
is numeric. The optional argument index specifies the position for the inserted variable and Variable
object (the first position has an index value of 0) and can take on the values 0,1,...,n where n is the
number of variables in the dataset. If index is omitted or equal to n, the variable is appended to the end of
the list.
• Numeric variables are specified by a value of 0 for the variable type. String variables are specified with a
type equal to the defined length of the string (maximum of 32767).
• The properties of the new variable are set using the Variable object created by the insert method.
See the topic “Variable Class ” on page 65 for more information.
Example
datasetObj = spss.Dataset('data1')
# Create a Variable object, specifying the variable by name
varObj = datasetObj.varlist['bdate']
# Create a Variable object, specifying the variable by index
varObj = datasetObj.varlist[3]
Note: An instance of the Variable class can only be created within a data step, and cannot be used
outside of the data step in which it was created. Data steps are initiated with the spss.StartDataStep
function.
alignment Property
The alignment property of a Variable object gets or sets the alignment of data values displayed in the
Data Editor. It has no effect on the format of the variables or the display of the variables or values in other
windows or printed results. The variable alignment is specified as an integer with one of the following
values: 0 (left), 1 (right), 2 (center).
Example
varObj = datasetObj.varlist['gender']
#Get the variable alignment
align = varObj.alignment
#Set the variable alignment
varObj.alignment = 1
attributes Property
The attributes property of a Variable object gets or sets custom variable attributes. It can also be
used to clear any custom attributes. The attributes property behaves like a Python dictionary in terms
of getting, setting, and deleting values. A Python dictionary consists of a set of keys, each of which has
an associated value that can be accessed simply by specifying the key. In the case of variable attributes,
each key is the name of an attribute and the associated value is the value of the attribute, which can be a
single value or a list or tuple of values. A list or tuple of values specifies an attribute array.
• When setting attributes, attribute names and values must be given as quoted strings.
Retrieving Variable Attributes. You retrieve custom variable attributes for a specified variable from the
attributes property of the associated Variable object. You retrieve the value of a particular attribute
by specifying the attribute name, as in:
varObj = datasetObj.varlist['gender']
attrValue = varObj.attributes['attrName']
varObj = datasetObj.varlist['gender']
for attrName, attrValue in varObj.attributes.data.iteritems():
print attrName, attrValue
Adding and Modifying Attributes. You can add new attributes and modify values of existing ones. For
example:
varObj = datasetObj.varlist['age']
varObj.attributes['AnswerFormat'] = 'Fill-in'
• If the attribute AnswerFormat exists, its value is updated to 'Fill-in'. If the attribute AnswerFormat
doesn't exist, it is added to any existing ones for the variable age.
varObj = datasetObj.varlist['gender']
varObj.attributes = {'DemographicVars':'1','Binary':'Yes'}
• You reset the attributes by setting the attributes property to a new Python dictionary. Any existing
attributes for the variable are cleared and replaced with the specified set.
Deleting Attributes. You can delete a particular attribute or the entire set of attributes for a specified
variable. For example:
varObj = datasetObj.varlist['gender']
#Delete the attribute Binary
del varObj.attributes['Binary']
#Delete all attributes
del varObj.attributes
columnWidth Property
The columnWidth property of a Variable object gets or sets the column width of data values displayed
in the Data Editor. Changing the column width does not change the defined width of a variable. When
setting the column width, the specified value must be a positive integer.
Example
varObj = datasetObj.varlist['prevexp']
#Get the column width
width = varObj.columnWidth
#Set the column width
varObj.columnWidth = 3
format Property
The format property of a Variable object gets or sets the display format of a variable.
Example
varObj = datasetObj.varlist['id']
#Get the variable format
format = varObj.format
#Set the variable format
varObj.format = (5,5,0)
• When getting the format, the returned value is a string consisting of a character portion (in upper
case) that specifies the format type, followed by a numeric component that indicates the defined
width, followed by a component that specifies the number of decimal positions and is only included
for numeric formats. For example, A4 is a string format with a maximum width of four, and F8.2 is a
standard numeric format with a display format of eight digits, including two decimal positions and a
decimal indicator.
• When setting the format, you provide a tuple or list of three integers specifying the format type, width,
and the number of decimal digits (for numeric formats) in that order. The width must include enough
positions to accommodate any punctuation characters such as decimal points, commas, dollar signs, or
date and time delimiters. If decimal digits do not apply, use 0 for the third element of the list or tuple.
The available format types are listed in Appendix A, “Variable Format Types ,” on page 229.
Notes
• Allowable settings for decimal and width depend on the specified type. For a list of the minimum and
maximum widths and maximum decimal places for commonly used format types, see Variable Types
and Formats in the Universals section of the Command Syntax Reference, available in PDF from the Help
menu and also integrated into the overall Help system.
• Setting the width for a string variable will not change the defined length of the string. If the specified
value does not match the defined length, it is forced to be the defined length.
index Property
The index property of a Variable object gets the variable index. The index value represents position in
the dataset starting with 0 for the first variable in file order.
varObj = datasetObj.varlist['bdate']
index = varObj.index
label Property
The label property of a Variable object gets or sets the variable label.
Example
varObj = datasetObj.varlist['bdate']
#Get the variable label
label = varObj.label
#Set the variable label
varObj.label = 'Birth Date'
measurementLevel Property
The measurementLevel property of a Variable object gets or sets the measurement level of a
variable. The measurement level is specified as a string. When setting the measurement level the
allowed values are: "NOMINAL", "ORDINAL", and "SCALE". When getting the measurement level the
additional value "UNKNOWN" may be returned for numeric variables prior to the first data pass when
the measurement level has not been explicitly set, such as data read from an external source or newly
created variables. The measurement level for string variables is always known.
Example
varObj = datasetObj.varlist['minority']
#Get the measurement level
level = varObj.measurementLevel
#Set the measurement level
varObj.measurementLevel = "NOMINAL"
missingValues Property
The missingValues property of a Variable object gets or sets user-missing values. The missing values
are specified as a tuple or list of four elements where the first element specifies the missing value type:
0,1,2, or 3 for that number of discrete values, -2 for a range of values, and -3 for a range of values and
a single discrete value. The remaining three elements specify the missing values. When getting missing
values, the result is returned as a tuple with this same structure.
• For string variables, returned values are right-padded to the defined width of the string variable.
• To specify LO and HI in missing value ranges, use the values returned by the spss.GetSPSSLowHigh
function.
Examples
In the following examples, varObj is an instance of the Variable class.
missingVals = varObj.missingValues
varObj.missingValues = [2,0,9,None]
varObj.missingValues = [-2,9,99,None]
Specify the range of missing values 9–99 and the discrete missing value 0 for a numeric variable.
varObj.missingValues = [-3,9,99,0]
varObj.missingValues = [0,None,None,None]
name Property
The name property of a Variable object gets or sets the variable name.
Example
varObj = datasetObj.varlist['bdate']
#Get the variable name
name = varObj.name
#Set the variable name
varObj.name = 'birthdate'
role Property
The role property of a Variable object gets or sets the variable role. Valid values for getting and setting
are the following strings: "Input", "Target", "Both", "None", "Partition" or "Split".
Example
varObj = datasetObj.varlist['var1']
#Get the variable role
role = varObj.role
#Set the variable role
varObj.role = 'Target'
type Property
The type property of a Variable object gets or sets the variable type--numeric or string. The variable
type for numeric variables is 0. The variable type for string variables is an integer equal to the defined
length of the string (maximum of 32767).
Example
varObj = datasetObj.varlist['strvar']
#Get the variable type
type = varObj.type
#Set the variable type to a string of length 10
varObj.type = 10
valueLabels Property
The valueLabels property of a Variable object gets or sets value labels. It can also be used to clear
any value labels. The valueLabels property behaves like a Python dictionary in terms of getting, setting,
and deleting values. A Python dictionary consists of a set of keys, each of which has an associated value
varObj = datasetObj.varlist['origin']
valLab = varObj.valueLabels[1]
You can iterate through the set of value labels for a variable using the data property, as in:
varObj = datasetObj.varlist['origin']
for val, valLab in varObj.valueLabels.data.iteritems():
print val, valLab
Adding and Modifying Value Labels. You can add new value labels and modify existing ones. For
example:
varObj = datasetObj.varlist['origin']
varObj.valueLabels[4] = 'Korean'
• If a label for the value 4 exists, its value is updated to 'Korean'. If a label for the value 4 doesn't exist, it
is added to any existing value labels for the variable origin.
Resetting Value Labels. You can reset the value labels to a new specified set. For example:
varObj = datasetObj.varlist['origin']
varObj.valueLabels = {1:'American',2:'Japanese',3:'European',
4:'Korean',5:'Chinese'}
• You reset the value labels by setting the valueLabels property to a new Python dictionary. Any existing
value labels for the variable are cleared and replaced with the specified set.
Deleting Value Labels. You can delete a particular value label or the entire set of value labels for a
specified variable. For example:
varObj = datasetObj.varlist['origin']
#Delete the value label for the value 1
del varObj.valueLabels[1]
#Delete all value labels
del varObj.valueLabels
spss.DataStep Class
The DataStep class implicitly starts and ends a data step without the need to explicitly call
StartDataStep and EndDataStep. In addition, it executes any pending transformations, eliminating
the need to check for them prior to starting a data step. The DataStep class is designed to be used with
the Python with statement as shown in the following example.
Example
BEGIN PROGRAM.
import spss
with spss.DataStep():
datasetObj = spss.Dataset(name=None)
datasetObj.varlist.append('numvar')
datasetObj.varlist.append('strvar',1)
datasetObj.varlist['numvar'].label = 'Sample numeric variable'
datasetObj.varlist['strvar'].label = 'Sample string variable'
datasetObj.cases.append([1,'a'])
datasetObj.cases.append([2,'b'])
END PROGRAM.
• with spss.DataStep(): initiates a block of code associated with a data step. The data step is
implicitly started after executing any pending transformations. All code associated with the data step
should reside in the block as shown here. When the block completes, the data step is implicitly ended.
handle = 'demo'
spss.DeleteXPathHandle(handle)
spss.EndDataStep Function
spss.EndDataStep(). Signals the end of a data step.
• EndDataStep must be called to end a data step initiated with StartDataStep.
For an example that uses EndDataStep, see the topic on the Dataset class.
spss.EndProcedure Function
spss.EndProcedure(). Signals the end of pivot table or text block output.
• spss.EndProcedure must be called to end output initiated with spss.StartProcedure.
spss.EvaluateXPath Function
spss.EvaluateXPath(handle,context,xpath). Evaluates an XPath expression against a specified XPath
DOM and returns the result as a list. The argument handle specifies the particular XPath DOM and must
be a valid handle name defined by a previous spss.CreateXPathDictionary function or IBM SPSS
Statistics OMS command. The argument context defines the XPath context for the expression and should
be set to "/dictionary" for a dictionary DOM or "/outputTree" for an output XML DOM created by
the OMS command. The argument xpath specifies the remainder of the XPath expression and must be
quoted.
Example
Example
*Use OMS and a Python program to determine the number of uniques values
for a specific variable.
OMS SELECT TABLES
/IF COMMANDs=['Frequencies'] SUBTYPES=['Frequencies']
/DESTINATION FORMAT=OXML XMLWORKSPACE='freq_table'.
FREQUENCIES VARIABLES=var1.
OMSEND.
BEGIN PROGRAM.
import spss
handle='freq_table'
context="/outputTree"
#get rows that are totals by looking for varName attribute
#use the group element to skip split file category text attributes
xpath="//group/category[@varName]/@text"
values=spss.EvaluateXPath(handle,context,xpath)
#the "set" of values is the list of unique values
#and the length of that set is the number of unique values
uniqueValuesCount=len(set(values))
END PROGRAM.
Note: In the IBM SPSS Statistics documentation, XPath examples for the OMS command use a namespace
prefix in front of each element name (the prefix oms: is used in the OMS examples). Namespace prefixes
are not valid for EvaluateXPath.
Documentation for the output schema and the dictionary schema is available from the Help system.
spss.GetDataFileAttributeNames Function
spss.GetDataFileAttributeNames(). Returns the names of any datafile attributes, as a tuple, for the active
dataset.
Example
import spss
fileattrs = spss.GetDataFileAttributeNames()
spss.GetDataFileAttributes Function
spss.GetDataFileAttributes(attrName). Returns the attribute values, as a tuple, for the specified datafile
attribute. The argument attrName is a string that specifies the name of the attribute--for instance, a name
returned by GetDataFileAttributeNames.
Example
spss.GetDatasets Function
spss.GetDatasets(). Returns a list of the available Dataset objects. Each object in the list is an
instance of the Dataset class. The GetDatasets function is intended for use within a data step or a
StartProcedure-EndProcedure block and will return an empty list if used elsewhere. Data steps are
initiated with the spss.StartDataStep function and are used to create and manage multiple datasets.
Example
import spss
spss.StartDataStep()
# Create a Dataset object for the active dataset
datasetObj1 = spss.Dataset()
# Create a new and empty dataset
datasetObj2 = spss.Dataset(name=None)
datasetNames = [item.name for item in spss.GetDatasets()]
spss.EndDataStep()
spss.GetDefaultPlugInVersion Function
spss.GetDefaultPlugInVersion(). Returns the default version of the IBM SPSS Statistics - Integration
Plug-in for Python used for Python programs. The result is a string specifying a version--for example,
"spss170" for version 17.0--and is useful when working with multiple versions of the plug-in on a given
machine (see Note below). You can change the default using the spss.SetDefaultPlugInVersion function.
Note: For version 22 and higher, this function always returns the version of IBM SPSS Statistics from
which it was called.
import spss
version = spss.GetDefaultPlugInVersion()
Note: The functions for managing multiple versions of the plug-in (spss.GetDefaultPlugInVersion,
spss.SetDefaultPlugInVersion, and spss.ShowInstalledPlugInVersions) operate within a
given Python version, not across Python versions. For example, if you are driving IBM SPSS Statistics from
a Python IDE installed for Python 3.8 then you can view and control the versions of the plug-in installed
for Python 3.8.
spss.GetFileHandles Function
spss.GetFileHandles(). Returns a list of currently defined file handles. Each item in the list consists of the
following three elements: the name of the file handle; the path associated with the file handle; and the
encoding, if any, specified for the file handle. File handles are created with the FILE HANDLE command.
spss.GetHandleList Function
spss.GetHandleList(). Returns a list of currently defined dictionary and output XPath DOMs available for
use with spss.EvaluateXpath.
spss.GetImage Function
spss.GetImage(handle,imagename). Retrieves an image associated with an output XPath DOM. The
argument handle specifies the particular XPath DOM and must be a valid handle name defined by a
previous IBM SPSS Statistics OMS command. The argument imagename is the filename associated
with the image in the OXML output--specifically, the value of the imageFile attribute of the chart,
modelView or treeView element associated with the image.
The returned value is a tuple with 3 elements. The first element is the binary image. The second element
is the amount of memory required for the image. The third element is a string specifying the image type:
“PNG”, “JPG”, “BMP”.
Example
OMS
/SELECT CHARTS
/IF COMMANDS=['Frequencies']
/DESTINATION FORMAT=OXML IMAGES=YES
CHARTFORMAT=IMAGE IMAGEROOT='myimages' IMAGEFORMAT=JPG XMLWORKSPACE='demo'.
FREQUENCIES VARIABLES=jobcat
/BARCHART PERCENT
/ORDER=ANALYSIS.
OMSEND.
BEGIN PROGRAM.
import spss
imagename=spss.EvaluateXPath('demo','/outputTree',
'//command[@command="Frequencies"]/chartTitle[@text="Bar Chart"]/chart/@imageFile')[0]
image = spss.GetImage('demo',imagename)
f = file('/temp/myimage.jpg','wb')
f.truncate(image[1])
f.write(image[0])
f.close()
spss.DeleteXPathHandle('demo')
END PROGRAM.
• The OMS command routes output from the FREQUENCIES command to an output XPath DOM with the
handle name of demo.
• To route images along with the OXML output, the IMAGES keyword on the DESTINATION subcommand
(of the OMS command) must be set to YES, and the CHARTFORMAT, MODELFORMAT, or TREEFORMAT
keyword must be set to IMAGE.
• The spss.EvaluateXPath function is used to retrieve the name of the image associated with the
bar chart output from the FREQUENCIES command. In the present example, the value returned by
spss.EvaluateXPath is a list with a single element, which is then stored to the variable imagename.
• The spss.GetImage function retrieves the image, which is then written to an external file.
• The first COMPUTE command and the FREQUENCIES command will run without errors, generating error
values of 0.
• The second COMPUTE command will generate a level 3 error, triggering the exception handling in the
except clause.
import spss
names = spss.GetMultiResponseSetNames()
spss.GetMultiResponseSet Function
spss.GetMultiResponseSet(mrsetName). Returns the details of the specified multiple response set. The
argument mrsetName is a string that specifies the name of the multiple response set--for instance, a
name returned by GetMultiResponseSetNames.
• The result is a tuple of 5 elements. The first element is the label, if any, for the set. The second
element specifies the variable coding--'Categories' or 'Dichotomies'. The third element specifies the
counted value and only applies to multiple dichotomy sets. The fourth element specifies the data
type--'Numeric' or 'String'. The fifth element is a list of the elementary variables that define the set.
Example
spss.GetOMSTagList Function
spss.GetOMSTagList(). Returns a list of tags associated with any active OMS requests. Each OMS request
has a tag which identifies the request. The tag is specified with the TAG subcommand of the OMS
command, or automatically generated if not specified.
spss.GetSetting Function
spss.GetSetting(setting,option). Returns the value of an options setting. Specifically, this function returns
values for options that can be set with the SET command.
• The argument setting is a string specifying the name of the subcommand (of the SET command), whose
value is desired--for example "OLANG". The case of the specified string is ignored.
Note: GetSetting does not support retrieving the value of the MTINDEX subcommand of the SET
command.
• The argument option is a string specifying an option associated with the value of the setting argument.
It only applies to the MIOUTPUT subcommand of SET, for which there is a separate setting for each
of the keywords "OBSERVED", "IMPUTED", "POOLED", and "DIAGNOSTICS". When setting equals
"MIOUTPUT", option can be set to any of those four keywords to obtain the associated value of the
keyword--'Yes' or 'No'. The case of the string specified for option is ignored.
spss.GetSplitVariableNames Function
spss.GetSplitVariableNames(). Returns the names of the split variables, if any, in the active dataset.
Example
import spss
splitvars = spss.GetSplitVariableNames()
spss.GetSPSSLocale Function
spss.GetSPSSLocale(). . Returns the current IBM SPSS Statistics locale.
import spss
locale = spss.GetSPSSLocale()
spss.GetSPSSLowHigh Function
spss.GetSPSSLowHigh(). Returns the values IBM SPSS Statistics uses for LO and HI as a tuple of two
values. The first element in the tuple is the value for LO and the second is the value for HI. These
values can used to specify missing value ranges for new numeric variables with the SetVarNMissingValues
method.
Example
import spss
spsslow, spsshigh = spss.GetSPSSLowHigh()
spss.GetVarAttributeNames Function
spss.GetVarAttributeNames(index). Returns the names of any variable attributes, as a tuple, for the
variable in the active dataset indicated by the index value. The argument is the index value. Index values
represent position in the active dataset, starting with 0 for the first variable in file order.
Example
spss.GetVarAttributes Function
spss.GetVarAttributes(index,attrName). Returns the attribute values, as a tuple, for the specified
attribute of the variable in the active dataset indicated by the index value. The argument index is the
index value. Index values represent position in the active dataset, starting with 0 for the first variable in
file order. The argument attrName is a string that specifies the name of the attribute--for instance, a name
returned by GetVarAttributeNames.
Example
spss.GetVariableCount Function
spss.GetVariableCount(). Returns the number of variables in the active dataset.
spss.GetVariableFormat Function
GetVariableFormat(index). Returns a string containing the display format for the variable in the active
dataset indicated by the index value. The argument is the index value. Index values represent position in
the active dataset, starting with 0 for the first variable in file order.
• The character portion of the format string is always returned in all upper case.
• Each format string contains a numeric component after the format name that indicates the defined
width, and optionally, the number of decimal positions for numeric formats. For example, A4 is a string
format with a maximum width of four bytes, and F8.2 is a standard numeric format with a display
format of eight digits, including two decimal positions and a decimal indicator. The supported format
types are listed in Variable Format Types (the type code shown in the table does not apply to the
GetVariableFormat function).
Example
BEGIN PROGRAM.
import spss
#create a list of all formats and a list of time format variables
varcount=spss.GetVariableCount()
formatList=[]
timeVarList=[]
for i in range(varcount):
formatList.append(spss.GetVariableFormat(i))
#check to see if it's a time format
if spss.GetVariableFormat(i).find("TIME")==0:
timeVarList.append(spss.GetVariableName(i))
print formatList
print timeVarList
END PROGRAM.
spss.GetVariableLabel Function
spss.GetVariableLabel(index). Returns a character string containing the variable label for the variable in
the active dataset indicated by the index value. The argument is the index value. Index values represent
position in the active dataset, starting with 0 for the first variable in file order. If the variable does not have
a defined variable label, a null string is returned.
Example
spss.GetVariableMeasurementLevel Function
spss.GetVariableMeasurementLevel(index). Returns a string value that indicates the measurement level
for the variable in the active dataset indicated by the index value. The argument is the index value. Index
values represent position in the active dataset, starting with 0 for the first variable in file order. The value
returned can be: "nominal", "ordinal", "scale", or "unknown".
• "Unknown" occurs only for numeric variables prior to the first data pass when the measurement level
has not been explicitly set, such as data read from an external source or newly created variables. The
measurement level for string variables is always known.
spss.GetVariableName Function
spss.GetVariableName(index). Returns a character string containing the variable name for the variable in
the active dataset indicated by the index value. The argument is the index value. Index values represent
position in the active dataset, starting with 0 for the first variable in file order.
Example
spss.GetVariableRole Function
spss.GetVariableRole(index). Returns a character string containing the role for the variable in the active
dataset indicated by the index value. The argument is the index value. Index values represent position
in the active dataset, starting with 0 for the first variable in file order. The value returned is one of the
following strings: "Input", "Target", "Both", "None", "Partition" or "Split".
Example
spss.GetVariableType Function
spss.GetVariableType(index). Returns 0 for numeric variables or the defined length for string variables
for the variable in the active dataset indicated by the index value. The argument is the index value. Index
values represent position in the active dataset, starting with 0 for the first variable in file order.
Example
spss.GetVarMissingValues Function
spss.GetVarMissingValues(index). Returns the user-missing values for the variable in the active dataset
indicated by the index value. The argument is the index value. Index values represent position in the active
dataset, starting with 0 for the first variable in file order.
Example
spss.GetWeightVar Function
spss.GetWeightVar(). Returns the name of the weight variable, or None if unweighted.
Example
import spss
weightVar = spss.GetWeightVar()
spss.GetXmlUtf16 Function
spss.GetXmlUtf16(handle, filespec). Writes the XML for the specified handle (dictionary or output XML)
to a file or returns the XML if no filename is specified. When writing and debugging XPath expressions, it
is often useful to have a sample file that shows the XML structure. This function is particularly useful for
dictionary DOMs, since there are not any alternative methods for writing and viewing the XML structure.
(For output XML, the OMS command can also write XML to a file.) You can also use this function to retrieve
the XML for a specified handle, enabling you to process it with third-party utilities like XML parsers.
Example
handle = "activedataset"
spss.CreateXPathDictionary(handle)
spss.GetXmlUtf16(handle,'/temp/temp.xml')
spss.HasCursor Function
spss.HasCursor(). Returns an integer indicating whether there is an open cursor. A value of 0 indicates
there is no open cursor, and a value of 1 indicates there is an open cursor. Cursors allow you to read
data from the active dataset, create new variables in the active dataset, and append cases to the active
dataset. For information on working with cursors, see the topic on the Cursor class .
spss.IsActive Function
spss.IsActive(datasetObj). Indicates whether the specified dataset is the active one. The result is Boolean
—True if the specified dataset is active, False otherwise. The argument must be an instance of the
import spss
spss.StartDataStep()
datasetObj = spss.Dataset(name="file1")
if not spss.IsActive(datasetObj):
spss.SetActive(datasetObj)
spss.EndDataStep()
spss.IsDistributedMode Function
spss.IsDistributedMode(). Indicates whether IBM SPSS Statistics is in distributed mode. The result is
Boolean—True if SPSS Statistics is in distributed mode, False otherwise. The IsDistributedMode
function always returns False when an external Python process is controlling the SPSS Statistics backend.
Example
import spss
if spss.IsDistributedMode():
print "SPSS Statistics is in distributed mode"
else:
print "SPSS Statistics is not in distributed mode"
spss.IsOutputOn Function
spss.IsOutputOn(). Returns the status of IBM SPSS Statistics output display in Python. The result is
Boolean—True if output display is on in Python, False if it is off. See the topic “spss.SetOutput Function ”
on page 81 for more information.
Example
import spss
spss.SetOutput("on")
if spss.IsOutputOn():
print "The current IBM SPSS Statistics output setting is 'on'."
else:
print "The current IBM SPSS Statistics output setting is 'off'."
spss.Procedure Class
spss.Procedure(procName,omsIdentifier). The Procedure class implicitly starts and ends a user
procedure without the need to explicitly call StartProcedure and EndProcedure.
• The argument procName is a string and is the name that appears in the outline pane of the Viewer
associated with the output from the procedure. It has the same specifications as the procedureName
argument to the StartProcedure function.
• The optional argument omsIdentifier specifies the OMS identifier for output from this procedure and has
the same specifications as the omsIdentifier argument to the StartProcedure function. omsIdentifier
is only necessary when creating procedures with localized output so that the procedure name can be
localized but not the OMS identifier. See the topic “Localizing Output from Python Programs” on page 11
for more information.
The Procedure class is designed to be used with the Python with statement as shown in the following
example.
Example
BEGIN PROGRAM.
import spss
with spss.Procedure("demoProc"):
table = spss.BasePivotTable("Table Title",
"OMS table subtype")
spss.PyInvokeSpss.IsUTF8mode Function
spss.PyInvokeSpss.IsUTF8mode(). Indicates whether IBM SPSS Statistics is running in Unicode mode or
code page mode. The result is 1 if IBM SPSS Statistics is in Unicode mode, 0 if IBM SPSS Statistics is in
code page mode.
Example
import spss
isUTF8 = spss.PyInvokeSpss.IsUTF8mode()
if isUTF8==1:
print "IBM SPSS Statistics is running in Unicode mode."
else:
print "IBM SPSS Statistics is running in code page mode."
spss.PyInvokeSpss.IsXDriven Function
spss.PyInvokeSpss.IsXDriven(). Checks to see how the IBM SPSS Statistics backend is being run. The
result is 1 if Python is controlling the IBM SPSS Statistics backend or 0 if IBM SPSS Statistics is controlling
the backend.
Example
import spss
spss.Submit("""
GET FILE
'/examples/data/employee data.sav'.
""")
isxd = spss.PyInvokeSpss.IsXDriven()
if isxd==1:
print "Python is driving IBM SPSS Statistics."
else:
print "IBM SPSS Statistics is driving Python."
spss.SetActive Function
spss.SetActive(datasetObj). Sets the specified dataset as the active one. The argument must be an
instance of the Dataset class. The SetActive function can only be used within a data step. Data
steps are initiated with the spss.StartDataStep function and are used to create and manage multiple
datasets.
Example
spss.SetDefaultPlugInVersion Function
Note: This function is deprecated in release 22. See the topic “Working with Multiple Versions of IBM
SPSS Statistics ” on page 8 for more information.
spss.SetDefaultPlugInVersion(value). Sets the default version of the IBM SPSS Statistics - Integration
Plug-in for Python used for Python programs. This function is useful when working with multiple
versions of the plug-in on a given machine (see Note below). The value of the argument is a
quoted string or an integer specifying a plug-in version--for example, "spss160" or 160 for version
16.0. The strings representing the installed versions of the plug-in are available from the function
spss.ShowInstalledPlugInVersions.
• For versions 17.0 to 21.0, SetDefaultPlugInVersion also sets the default version of the IBM
SPSS Statistics - Integration Plug-in for Python used for Python scripts (Python code that utilizes the
SpssClient module).
import spss
spss.SetDefaultPlugInVersion("spss160")
Note: The functions for managing multiple versions of the plug-in (spss.GetDefaultPlugInVersion,
spss.SetDefaultPlugInVersion, and spss.ShowInstalledPlugInVersions) operate within a
given Python version, not across Python versions. For example, if you are driving IBM SPSS Statistics from
a Python IDE installed for Python 3.8 then you can view and control the versions of the plug-in installed
for Python 3.8.
spss.SetMacroValue Function
spss.SetMacroValue(name, value). Defines a macro variable that can be used outside a program block
in command syntax. The first argument is the macro name, and the second argument is the macro value.
Both arguments must resolve to strings.
• The argument specifying the macro value cannot contain the characters \ or ^ unless they are
contained within a quoted string.
Example
BEGIN PROGRAM.
import spss
macroValue=[]
macroName="!NominalVars"
varcount=spss.GetVariableCount()
for i in range(varcount):
if spss.GetVariableMeasurementLevel(i)=="nominal":
macroValue.append(spss.GetVariableName(i))
spss.SetMacroValue(macroName, macroValue)
END PROGRAM.
FREQUENCIES VARIABLES=!NominalVars.
spss.SetOutput Function
spss.SetOutput("value"). Controls the display of IBM SPSS Statistics output in Python when running
IBM SPSS Statistics from Python. Output is displayed as standard output, and charts and classification
trees are not included. When running Python from IBM SPSS Statistics within program blocks (BEGIN
PROGRAM-END PROGRAM), this function has no effect. The value of the argument is a quoted string:
• "on". Display IBM SPSS Statistics output in Python.
• "off". Do not display IBM SPSS Statistics output in Python.
Example
import spss
spss.SetOutput("on")
spss.SetOutputLanguage Function
spss.SetOutputLanguage("language"). Sets the language that is used in IBM SPSS Statistics output. The
argument is a quoted string specifying one of the following languages: "English", "French", "German",
"Italian", "Japanese", "Korean", "Polish", "Russian", "SChinese" (Simplified Chinese), "Spanish", "TChinese"
(Traditional Chinese), or "BPortugu" (Brazilian Portuguese). The setting does not apply to simple text
output.
Example
import spss
spss.SetOutputLanguage("German")
import spss
spss.ShowInstalledPlugInVersions()
Note: The functions for managing multiple versions of the plug-in (spss.GetDefaultPlugInVersion,
spss.SetDefaultPlugInVersion, and spss.ShowInstalledPlugInVersions) operate within a
given Python version, not across Python versions. For example, if you are driving IBM SPSS Statistics from
a Python IDE installed for Python 3.8 then you can view and control the versions of the plug-in installed
for Python 3.8.
spss.SplitChange Function
spss.SplitChange(outputName). Used to process splits when creating pivot tables from data that have
splits. The argument outputName is the name associated with the output, as specified on the associated
call to the StartProcedure function. See the topic “spss.StartProcedure Function ” on page 83 for
more information.
• This function should be called after detecting a split and reading the first case of the new split. It should
also be called after reading the first case in the active dataset.
• The creation of pivot table output does not support operations involving data in different split groups.
When working with splits, each split should be treated as a separate set of data.
• Use the SPLIT FILE command to control whether split-file groups will be displayed in the same
table or in separate tables. The SPLIT FILE command should be called before the StartProcedure
function.
• The IsEndSplit method from the Cursor class is used to detect a split change.
Example
In this example, a split is created and separate averages are calculated for the split groups. Results for
different split groups are shown in a single pivot table. In order to understand the example, you will
need to be familiar with creating pivot tables using the BasePivotTable class and creating output with the
spss.StartProcedure function.
import spss
from spss import CellText
from spss import FormatSpec
spss.Submit(r"""
GET FILE="/examples/data/employee data.sav".
SORT CASES BY GENDER.
SPLIT FILE LAYERED BY GENDER.
""")
spss.StartProcedure("spss.com.demo")
cur=spss.Cursor()
salary = 0; salarym = 0; n = 0; m = 0
minorityIndex = 9
salaryIndex = 5
row = cur.fetchone()
spss.SplitChange("spss.com.demo")
while True:
if cur.IsEndSplit():
if n>0:
salary=salary/n
if m>0:
salarym=salarym/m
cur.close()
spss.EndProcedure()
• The spss.Submit function is used to submit command syntax to create a split on a gender variable.
The LAYERED subcommand on the SPLIT FILE command indicates that results for different split
groups are to be displayed in the same table. Notice that the command syntax is executed before calling
spss.StartProcedure.
• The spss.SplitChange function is called after fetching the first case from the active dataset. This is
required so that the pivot table output for the first split group is handled correctly.
• Split changes are detected using the IsEndSplit method from the Cursor class. Once a split change is
detected, the pivot table is populated with the results from the previous split.
• The value returned from the fetchone method is None at a split boundary. Once a split has been
detected, you will need to call fetchone again to retrieve the first case of the new split group,
followed by spss.SplitChange. Note: IsEndSplit returns True when the end of the dataset has
been reached. Although a split boundary and the end of the dataset both result in a return value of True
from IsEndSplit, the end of the dataset is identified by a return value of None from a subsequent call
to fetchone, as shown in this example.
spss.StartDataStep Function
spss.StartDataStep(). Signals the beginning of a data step. A data step allows you to create and manage
multiple datasets.
• You cannot use the following classes and functions within a data step: the Cursor class, the
BasePivotTable class, the BaseProcedure class, the TextBlock class, the StartProcedure
function, the Submit function, and the StartDataStep function (data steps cannot be nested).
• The StartDataStep function cannot be used if there are pending transformations. If you need to
access case data in the presence of pending transformations, use the Cursor class.
• To end a data step, use the EndDataStep function.
For an example of using StartDataStep, see the topic on the Dataset class.
To avoid the need to check for pending transformations before starting a data step, use the DataStep
class. It implicitly starts and ends a data step and executes any pending transformations.
spss.StartProcedure Function
spss.StartProcedure(procedureName,omsIdentifier). Signals the beginning of pivot table or text block
output. Pivot table and text block output is typically associated with procedures. Procedures are user-
defined Python functions or custom Python classes that can read the data, perform computations, add
new variables and/or new cases to the active dataset, create new datasets, and produce pivot table
output and text blocks in the IBM SPSS Statistics Viewer. Procedures have almost the same capabilities as
built-in IBM SPSS Statistics procedures, such as DESCRIPTIVES and REGRESSION, but they are written
in Python by users. You read the data and create new variables and/or new cases in the active dataset
using the Cursor class, or create new datasets with the Dataset class. Pivot tables are created using the
BasePivotTable class. Text blocks are created using the TextBlock class.
def groupMeans(groupVar,sumVar):
varIndex = [groupIndex,sumIndex]
cur = spss.Cursor(varIndex)
Counts={};Statistic={}
cur.close()
#Call StartProcedure
spss.StartProcedure("mycompany.com.groupMeans")
category2 = spss.CellText.String("Mean")
for cat in sorted(Counts):
category1 = spss.CellText.Number(cat)
#Call EndProcedure
spss.EndProcedure()
• groupMeans is a Python user-defined function containing the procedure that calculates the group
means.
• The arguments required by the procedure are the names of the grouping variable (groupVar) and the
variable for which group means are desired (sumVar).
• The name associated with output from this procedure is mycompany.com.groupMeans. The output
consists of a pivot table populated with the group means.
• spss.EndProcedure marks the end of output creation.
Saving and Running Procedures
To use a procedure you have written, you save it in a Python module on the Python search path so that
you can call it. A Python module is simply a text file containing Python definitions and statements. You can
create a module with a Python IDE, or with any text editor, by saving a file with an extension of .py. The
name of the file, without the .py extension, is then the name of the module. You can have many functions
in a single module. To be sure that Python can find your new module, you may want to save it to your
Python "site-packages" directory, typically /Python310/Lib/site-packages.
For the example procedure described above, you might choose to save the definition of the groupMeans
function to a Python module named myprocs.py. And be sure to include an import spss statement in
the module. Sample command syntax to run the function is:
• The import statement containing myprocs makes the contents of the Python module myprocs.py
available to the current session (assuming that the module is on the Python search path).
• myprocs.groupMeans("educ","salary") runs the groupMeans function for the variables educ
and salary in /examples/data/Employee data.sav.
Result
spss.StartSPSS Function
spss.StartSPSS(hide, show, notes, nfc, nl). Starts a session of IBM SPSS Statistics.
• This function starts a session of IBM SPSS Statistics, for use when driving IBM SPSS Statistics from
Python. The function has no effect if a session is already running. Note: The spss.Submit function
automatically starts a session of IBM SPSS Statistics.
spss.StopSPSS Function
spss.StopSPSS(). Stops IBM SPSS Statistics, ending the session.
• This function is ignored when running Python from IBM SPSS Statistics (within program blocks defined
by BEGIN PROGRAM-END PROGRAM).
• When running IBM SPSS Statistics from Python, this function ends the IBM SPSS Statistics session, and
any subsequent spss.Submit functions that restart IBM SPSS Statistics will not have access to the
active dataset or to any other session-specific settings (for example, OMS output routing commands)
from the previous session.
Example: Running IBM SPSS Statistics from Python
import spss
#start a session and run some commands
#including one that defines an active dataset
spss.Submit("""
GET FILE '/examples/data/employee data.sav'.
FREQUENCIES VARIABLES=gender jobcat.
""")
#shutdown the session
spss.StopSPSS()
#insert a bunch of Python statements
#starting a new session and running some commands without defining
#an active dataset results in an error
spss.Submit("""
BEGIN PROGRAM.
import spss
#start a session and run some commands
#including one that defines an active dataset
spss.Submit("""
GET FILE '/examples/data/employee data.sav'.
FREQUENCIES VARIABLES=gender jobcat.
""")
#following function is ignored
spss.StopSPSS()
#active dataset still exists and subsequent spss.Submit functions
#will work with that active dataset.
spss.Submit("""
FREQUENCIES VARIABLES=gender jobcat.
""")
END PROGRAM.
spss.Submit Function
spss.Submit(command text). Submits the command text to IBM SPSS Statistics for processing. The
argument can be a quoted string, a list, or a tuple.
• The argument should resolve to one or more complete IBM SPSS Statistics commands.
• For lists and tuples, each element must resolve to a string.
• You can also use the Python triple-quoted string convention to specify blocks of IBM SPSS Statistics
commands on multiple lines that more closely resemble the way you might normally write command
syntax.
• If IBM SPSS Statistics is not currently running (when driving IBM SPSS Statistics from Python),
spss.Submit will start the IBM SPSS Statistics backend processor.
• Submitted syntax for MATRIX-END MATRIX and BEGIN DATA-END DATA blocks cannot be split across
BEGIN PROGRAM-END PROGRAM blocks.
• The following commands are not supported by Submit when driving IBM SPSS Statistics from Python:
OUTPUT EXPORT, OUTPUT OPEN and OUTPUT SAVE.
Example
BEGIN PROGRAM.
import spss
#run a single command
spss.Submit("DISPLAY NAMES.")
#run two commands
spss.Submit(["DISPLAY NAMES.", "SHOW $VARS."])
BEGIN PROGRAM.
import spss
file="/examples/data/demo.sav"
varlist="marital gender inccat"
spss.Submit("""
GET FILE='%s'.
FREQUENCIES VARIABLES=%s
/STATISTICS NONE
/BARCHART.
""" %(file,varlist))
END PROGRAM.
Within the triple-quoted string, %s is used for string substitution; thus, you can insert Python variables
that resolve to strings in the quoted block of commands.
spss.TextBlock Class
spss.TextBlock(name,content,outline). Creates and populates a text block item in the Viewer. The
argument name is a string that specifies the name of this item in the outline pane of the Viewer. The
argument content is a string that specifies the text. The string may include the escape sequence \n to
import spss
spss.StartProcedure("mycompany.com.demo")
textBlock = spss.TextBlock("Text block name",
"A single line of text.")
spss.EndProcedure()
append Method
.append(line,skip). Appends lines to an existing text block. The argument line is a string that specifies
the text. The string may include the escape sequence \n to specify line breaks, but must otherwise be
specified as plain text (HTML and rich text formatting are not supported). The optional argument skip
specifies the number of new lines to create when appending the specified line. The default is 1 and results
in appending the single specified line. Integers greater than 1 will result in blank lines preceding the
appended line. For example, specifying skip=3 will result in two blank lines before the appended line.
Example
import spss
spss.StartProcedure("mycompany.com.demo")
textBlock = spss.TextBlock("Text block name",
"A single line of text.")
textBlock.append("A second line of text.")
textBlock.append("A third line of text preceded by a blank line.",skip=2)
spss.EndProcedure()
Scope
You can run Python scripts directly from within IBM SPSS Statistics, from within Python programs, or from
an external Python process, such as a Python IDE or the Python interpreter.
Python Script Run from IBM SPSS Statistics. You can run a Python script from Utilities>Run Script or
from the Python script editor which is launched when opening a Python file (.py) from File>Open>Script.
Scripts run from the Python editor that is launched from IBM SPSS Statistics operate on the IBM SPSS
Statistics client that launched the editor. This allows you to debug your Python code from a Python editor.
Python Script Run from an External Python Process. You can run a Python script from any external
Python process, such as a Python IDE that is not launched from IBM SPSS Statistics, or the Python
interpreter. The script will attempt to connect to an existing IBM SPSS Statistics client. If more than one
client is found, a connection is made to the most recently launched one. If an existing client is not found,
the Python script starts up a new instance of the IBM SPSS Statistics client. By default, the Data Editor
and Viewer are invisible for the new client. You can choose to make them visible or work in invisible mode
with datasets and output documents.
• Mac. To run a Python script from an external Python process on Mac, launch the Programmability
External Python Process application, installed with IBM SPSS Statistics - Essentials for Python and
located in the directory where IBM SPSS Statistics is installed. The application launches IDLE (the
default IDE provided with Python) and sets environment variables necessary for driving IBM SPSS
Statistics.
Python Script Run from Python Program. You can run a Python script from a Python program by
importing the Python module containing the script and calling the function in the module that implements
the script. You can also call Python script methods directly from within a Python program. See the topic
“Running Python Scripts from Python Programs” on page 93 for more information.
• This feature is not available when running a Python program from an external Python process or
when running a Python program from the IBM SPSS Statistics Batch Facility (available with IBM SPSS
Statistics Server).
• When running Python scripting code from a Python program in distributed mode, you may need to
configure your firewall to allow access from the remote server to which you are connected.
Limitations
• The interfaces exposed by the spss module (the module used for Python programs) cannot be used in a
Python script.
• Calling methods in the SpssClient module with keyword arguments--in other words, keyword =
value--is not supported.
Help
General information on the Scripting Facility for IBM SPSS Statistics and additional information on Python
scripts is available from Core System > Scripting Facility in the Help system .
import SpssClient
SpssClient.StartClient()
<Python language statements>
SpssClient.StopClient()
• The import SpssClient statement imports the Python module containing the IBM SPSS Statistics
classes and methods available in the Python scripting interface.
• SpssClient.StartClient() provides a connection to the associated IBM SPSS Statistics client,
enabling the script to retrieve information from the client and to perform operations on objects
managed by the client, such as pivot tables. Whether the script connects to an existing client or starts
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
import SpssClient
SpssClient.StartClient()
SpssScriptContext = SpssClient.GetScriptContext()
SpssOutputItem = SpssScriptContext.GetOutputItem()
SpssPivotTable = SpssOutputItem.GetSpecificType()
SpssPivotMgr = SpssPivotTable.PivotManager()
SpssPivotMgr.TransposeRowsWithColumns()
SpssClient.StopClient()
import SpssClient
SpssClient.StartClient()
SpssScriptContext = SpssClient.GetScriptContext()
if SpssScriptContext == None:
print "I'm not an autoscript"
else:
print "I'm an autoscript"
• When a script is not run as an autoscript, the GetScriptContext method will return a value of None.
• Given the if-else logic in this example, you would include your autoscript-specific code in the else
clause. Any code that is not to be run in the context of an autoscript would be included in the if clause.
Of course you can also include code that is to be run in either context.
BEGIN PROGRAM.
import spss, MakeColsBold
spss.StartProcedure("Demo")
table = spss.BasePivotTable("Sample Table","OMS subtype")
table.SimplePivotTable(rowlabels = ["1","2"],
collabels = ["A","B"],
cells = ["1A","1B","2A","2B"])
spss.EndProcedure()
MakeColsBold.Run("Sample Table")
END PROGRAM.
• Python programs use the interface exposed by the Python spss module, so the first line of the program
contains an import statement for that module. The Python script is assumed to be contained in a
Python module named MakeColsBold, so the import statement also includes that module.
• The code from spss.StartProcedure to spss.EndProcedure creates a pivot table titled "Sample
Table".
• MakeColsBold.Run("Sample Table") calls the Run function in the MakeColsBold module and
passes the value "Sample Table" as the argument. The Run function implements the Python script to
make the column labels of the specified table bold.
The content of the MakeColsBold module is as follows:
import SpssClient
def Run(tableName):
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
for index in range(OutputItems.Size()):
OutputItem = OutputItems.GetItemAt(index)
if OutputItem.GetType() == SpssClient.OutputItemType.PIVOT \
and OutputItem.GetDescription() == tableName:
PivotTable = OutputItem.GetSpecificType()
ColumnLabels = PivotTable.ColumnLabelArray()
for i in range(ColumnLabels.GetNumColumns()):
ColumnLabels.SelectLabelAt(1,i)
PivotTable.SetTextStyle(SpssClient.SpssTextStyleTypes.SpssTSBold)
SpssClient.StopClient()
• The import SpssClient statement is needed to access the classes and methods available in the
Python scripting interface.
• The module contains a single function named Run, which implements the script. It takes a single
argument that specifies the name of the table to modify. There is nothing special about the name
Run and the module is not limited to a single function. You can create a module that contains many
functions, each of which implements a different script.
BEGIN PROGRAM.
import spss, SpssClient
spss.StartProcedure("Demo")
table = spss.BasePivotTable("Sample Table","OMS subtype")
table.SimplePivotTable(cells = ["A","B","C","D"])
spss.EndProcedure()
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
OutputItem = OutputItems.GetItemAt(OutputItems.Size()-1)
PivotTable = OutputItem.GetSpecificType()
PivotTable.SelectTitle()
PivotTable.SetTextStyle(SpssClient.SpssTextStyleTypes.SpssTSItalic)
SpssClient.StopClient()
END PROGRAM.
• The import spss, SpssClient statement provides access to the classes and methods available for
Python programs (spss) as well as those for Python scripts (SpssClient).
• The code from spss.StartProcedure to spss.EndProcedure is the Python program code that
creates the pivot table.
• The code from SpssClient.StartClient() to SpssClient.StopClient() is the Python script
code that makes the title italic.
SpssClient Class
The SpssClient class is the top level class for the IBM SPSS Statistics Python scripting interface. From
an SpssClient object you can:
• Access the current data, syntax, or output document.
• Open and access a saved data, syntax, or output document.
• Create and access a new data, syntax, or output document.
• Obtain a list of all open data, syntax, or output documents.
• Run command syntax.
• Get and set options available from Edit>Options in the user interface.
• Get and set export options for exporting output.
• Get values pertinent to an autoscript, such as the output item that triggered the autoscript.
• Obtain information about configured instances of IBM SPSS Statistics Server and configure new
instances.
The SpssClient object is always available to a script, but you must call SpssClient.StartClient to
establish a connection to the IBM SPSS Statistics client before you can use any of the other methods in
the class. See the topic “Getting Started with Python Scripts” on page 91 for more information.
CreateNewServer Method
Creates a new server configuration and returns an SpssServerConf object. To add this server to the
list of configured servers, use the Add method in the SpssServerConfList class. You can obtain
an instance of SpssServerConfList from the GetConfiguredServers method in the SpssClient
class.
Syntax
SpssServerConf=SpssClient.CreateNewServer(serverName,port,desc)
Parameters
Exit Method
Terminates the instance of the IBM SPSS Statistics client associated with the current script. This method
is intended for use when running a script from an external Python process (such as a Python IDE or
the Python interpreter), and will terminate the instance of the IBM SPSS Statistics client associated with
the script. The method has no effect when called from a script that is run from within the IBM SPSS
Statistics client, either through Utilities>Run Script or from a Python IDE launched from File>Open>Script
or File>New>Script.
Syntax
SpssClient.Exit()
GetActiveDataDoc Method
Returns the active dataset as an SpssDataDoc object.
Syntax
SpssDataDoc=SpssClient.GetActiveDataDoc()
GetConfiguredServers Method
Returns the list of configured servers as an SpssServerConfList object. The list consists of
SpssServerConf objects for each of the configured servers, including the local computer.
Syntax
SpssServerConfList=SpssClient.GetConfiguredServers()
GetCurrentDirectory Method
Returns the current working directory of the IBM SPSS Statistics client.
Syntax
SpssClient.GetCurrentDirectory()
GetCurrentServer Method
Returns an SpssServerConf object representing the current server (may be an instance of IBM SPSS
Statistics Server or the local computer).
Syntax
SpssServerConf=SpssClient.GetCurrentServer()
GetDataDocuments Method
Returns the list of open datasets as a DataDocsList object. Each item in the list is an SpssDataDoc
object.
Syntax
DataDocsList=SpssClient.GetDataDocuments()
GetDefaultServer Method
Returns an SpssServerConf object representing the default server (may be an instance of IBM SPSS
Statistics Server or the local computer).
Syntax
SpssServerConf=SpssClient.GetDefaultServer()
GetDesignatedOutputDoc Method
Returns an SpssOutputDoc object representing the designated output document.
• If you have more than one open output document, output is routed to the designated one.
Syntax
SpssOutputDoc=SpssClient.GetDesignatedOutputDoc()
GetDesignatedSyntaxDoc Method
Returns an SpssSyntaxDoc object representing the designated syntax document.
• If you have more than one open syntax document, command syntax is pasted into the designated one.
Syntax
SpssSyntaxDoc=SpssClient.GetDesignatedSyntaxDoc()
GetExportOption Method
Returns the value of the specified export option, as a string.
Syntax
SpssClient.GetExportOption(option)
Parameters
The value of option is the identifier SpssClient.ExportOptions, followed by a period (.) and the name
of the option--for example, SpssClient.ExportOptions.GraphExportType. See Export Options for
the available list of options.
GetLocale Method
Returns a string specifying the current locale. The locale consists of the language, country and char set
information.
Syntax
GetLocalServer Method
Returns an SpssServerConf object representing the local computer.
Syntax
SpssServerConf=SpssClient.GetLocalServer()
GetOutputDocuments Method
Returns the list of open output documents as an OutputDocsList object. Each item in the list is an
SpssOutputDoc object.
Syntax
OutputDocsList=SpssClient.GetOutputDocuments()
GetPreference Method
Returns the value of the specified preference option, as a string.
Syntax
SpssClient.GetPreference(option)
The value of option is the identifier SpssClient.PreferenceOptions, followed by a period (.) and the
name of the option--for example, SpssClient.PreferenceOptions.VariableListDisplay. See
Preference Options for the available list of options.
GetScriptContext Method
Returns an SpssScriptContext object that allows you to determine the context in which a script is being
run--as an autoscript, or not.
• When the script is being run as an autoscript, the returned SpssScriptContext object provides
access to the output item that triggered the autoscript as well as the associated output document.
• When the script is not being run as an autoscript, GetScriptContext returns None.
Syntax
SpssScriptContext=SpssClient.GetScriptContext()
GetSPSSOptions Method
Returns a string which is a concatenation of three-letter abbreviations for each of the licensed options.
You can determine if a specified option is available from the IsOptionAvailable method.
Syntax
options=SpssClient.GetSPSSOptions()
The options and associated three-letter abbreviations are as follows:
Bas. Base
Pro. Regression
Adv. Advanced Statistics
Cyt. Exact Test
Cat. Categories
Mva. Missing Values
Con. Conjoint
GetSPSSPath Method
Returns a string specifying the path to the IBM SPSS Statistics installation directory.
Syntax
path=SpssClient.GetSPSSPath()
GetSPSSVersion Method
Returns a string specifying the IBM SPSS Statistics version.
Syntax
version=SpssClient.GetSPSSVersion()
GetSyntaxDocuments Method
Returns the list of open syntax documents as a SyntaxDocsList object. Each item in the list is an
SpssSyntaxDoc object.
Syntax
SyntaxDocsList=SpssClient.GetSyntaxDocuments()
GetUIAlerts Method
Returns the current setting of UI alerts for the client. The result is Boolean.
Syntax
SpssClient.GetUIAlerts()
Returns
True. Alerts are displayed in the UI
False. UI alerts are suppressed
IsDataDocInUse Method
Indicates whether a specified data file is in use by another instance of IBM SPSS Statistics. The result is
Boolean. The argument is a string specifying the path to the data file. Note: This method is not supported
on Mac and Linux.
Syntax
SpssClient.IsDataDocInUse(fileName)
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
IsOptionAvailable Method
Checks if the IBM SPSS Statistics client is licensed for a specified optional component. The result is
Boolean. You can obtain a list of all available options from the GetSPSSOptions method.
Syntax
SpssClient.IsOptionAvailable(licOption)
Parameters
The parameter licOption specifies the option.
Returns
True. The option is available.
False. The option is not available or the license for the option has expired.
LogToViewer Method
Writes the specified content to the designated output document as a log item. The content is appended to
the last log item in the output document.
Syntax
SpssClient.LogToViewer(content)
NewDataDoc Method
Creates a new dataset and makes it the active dataset. The method returns an SpssDataDoc object
associated with the new dataset.
Syntax
SpssDataDoc=SpssClient.NewDataDoc()
NewOutputDoc Method
Creates a new output document and makes it the designated output document. The method returns an
SpssOutputDoc object associated with the new output document.
Syntax
SpssOutputDoc=SpssClient.NewOutputDoc()
NewSyntaxDoc Method
Creates a new syntax document and makes it the designated syntax document. The method returns an
SpssSyntaxDoc object associated with the new syntax document.
Syntax
SpssSyntaxDoc=SpssClient.NewSyntaxDoc()
OpenDataDoc Method
Opens the specified data document and makes it the active dataset. The method returns an SpssDataDoc
object.
• This method is not available when called from a Python program in distributed mode (Python programs
make use of the interface exposed by the Python spss module).
Syntax
SpssDataDoc=SpssClient.OpenDataDoc(fileName,password=None)
Parameters
fileName. The path and file name of the data document, as a string.
password. A string specifying the password required to open the file. Only applies to encrypted data files.
The password can be specified as encrypted or unencrypted. Encrypted passwords are created when
pasting command syntax, for an encrypted file, from the Save Data As dialog.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
OpenOutputDoc Method
Opens the specified output document and makes it the designated output document. The method returns
an SpssOutputDoc object. By default, the associated Viewer window is invisible. Use the SetVisible
method from the SpssOutputUI class to make the Viewer window visible. You get an SpssOutputUI
object using the GetOutputUI method of the SpssOutputDoc object.
Syntax
SpssOutputDoc=SpssClient.OpenOutputDoc(fileName,password=None)
import SpssClient
SpssClient.StartClient()
outputDoc = SpssClient.OpenOutputDoc(r"fileName")
outputUI = outputDoc.GetOutputUI()
outputUI.SetVisible(True)
SpssClient.StopClient()
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
OpenSyntaxDoc Method
Opens the specified syntax document and makes it the designated syntax document. The method
returns an SpssSyntaxDoc object. By default, the associated Syntax Editor window is invisible. Use
the SetVisible method from the SpssSyntaxUI class to make the Syntax Editor window visible. You get
an SpssSyntaxUI object using the GetSyntaxUI method of the SpssSyntaxDoc object.
Syntax
SpssSyntaxDoc=SpssClient.OpenSyntaxDoc(fileName,password=None)
Parameters
fileName. The path and file name of the syntax document, as a string.
password. A string that specifies the password that is required to open the file. This setting applies only
to encrypted syntax files. The password can be specified as encrypted or unencrypted. For reference,
passwords are always encrypted in pasted syntax.
Example
import SpssClient
SpssClient.StartClient()
syntaxDoc = SpssClient.OpenSyntaxDoc(r"fileName")
syntaxUI = syntaxDoc.GetSyntaxUI()
syntaxUI.SetVisible(True)
SpssClient.StopClient()
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
RunSyntax Method
Executes a set of syntax commands.
• The submitted commands are executed synchronously with any other submitted command syntax.
• This method cannot be called within a script that is run from the SCRIPT command. It is also not
available when called from a Python program in distributed mode (Python programs make use of the
interface exposed by the Python spss module).
Syntax
SpssClient.RunSyntax(syntaxCommands)
To specify multiple commands, separate each command by the escape sequence for a linefeed, "\n", or
enclose the set of commands in a triple-quoted string, as in:
SpssClient.RunSyntax(r"""
GET FILE='/examples/data/Employee data.sav'.
SORT CASES BY gender.
SPLIT FILE
LAYERED BY gender.
DESCRIPTIVES
VARIABLES=salary salbegin jobtime prevexp
/STATISTICS=MEAN STDDEV MIN MAX.
SPLIT FILE OFF.
""")
• The triple double quotes enclose a block of command syntax that is submitted for processing, retaining
the line breaks. You can use either triple single quotes or triple double quotes, but you must use the
same type (single or double) on both sides of the command syntax block.
• Notice that the triple-quoted expression is prefixed with the letter r. The r prefix to a string specifies
Python's raw mode. In raw mode, Python treats all backslashes in the string as the backslash character
and not as the start of an escape sequence.
SaveServers Method
Saves the set of configured servers so that new server configurations added during the current session
will persist across sessions.
Syntax
SpssClient.SaveServers()
ScriptParameter Method
Retrieves a parameter passed to the script when calling the script from a SCRIPT command within
command syntax. Only a single parameter can be passed and it must be a quoted string.
Syntax
SpssClient.ScriptParameter(0)
SetCurrentDirectory Method
Sets the current working directory of the IBM SPSS Statistics client to a specified value.
Syntax
SpssClient.SetCurrentDirectory(newDir)
Parameters
newDir. The absolute path to the new working directory, as a string.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
SetExportOption Method
Sets the value of the specified export option to the value provided.
Syntax
SpssClient.SetExportOption(option,value)
Parameters
value. A string
For a list of the available export options and associated settings, see . The value of option is the identifier
SpssClient.ExportOptions, followed by a period (.) and the name of the option--for example,
SpssClient.ExportOptions.GraphExportType.
SetPreference Method
Sets the value of the specified preference option to the value provided.
Syntax
SpssClient.SetPreference(option,value)
Parameters
value. A string
For a list of the available preference options and settings, see Appendix
E, “Preference Options ,” on page 237. The value of option is the identifier
SpssClient.PreferenceOptions, followed by a period (.) and the name of the option--for example,
SpssClient.PreferenceOptions.VariableListDisplay.
SetUIAlerts Method
Specifies the setting of UI alerts for the IBM SPSS Statistics client.
Syntax
SpssClient.SetUIAlerts(showUIAlerts)
Parameters
showUIAlerts. True if alerts are to be displayed in the UI and False if UI alerts are to be suppressed.
If False is specified, any alerts triggered by script operations are propagated to the script as an exception.
import SpssClient
SpssClient.StartClient()
dataDoc = SpssClient.OpenDataDoc(r"fileName")
dataUI = dataDoc.GetDataUI()
dataUI.SetVisible(True)
SpssClient.StopClient()
StopClient Method
Terminates the connection to the IBM SPSS Statistics client. This method should be called at the
completion of each Python script. To ensure that StopClient() is called, it is recommended to include
the call in the finally clause of a try statement--for example, by including the body of the script in a
try statement.
Syntax
SpssClient.StopClient()
_heartBeat Method
The _heartBeat method is a utility function for use with thread-aware debuggers that pause all threads
at a breakpoint. If you are using such a debugger, then you will need to disable the SpssClient
heartbeat function (which is enabled by default) during debugging; otherwise the scripting session may
terminate at a breakpoint due to a failed heartbeat.
Syntax
To set the heartbeat status, use:
SpssClient._heartBeat(status)
To get the heartbeat status, use:
SpssClient._heartBeat()
Parameters
status. True to enable the heartbeat function, False to disable the heartbeat function.
Returns
True. The heartbeat function is enabled.
False. The heartbeat function is disabled.
import SpssClient
SpssClient.StartClient()
ActiveDataDoc = SpssClient.GetActiveDataDoc()
import SpssClient
SpssClient.StartClient()
DataDocsList = SpssClient.GetDataDocuments()
FirstDataDoc = DataDocsList.GetItemAt(0)
CloseDocument Method
Closes the dataset. If the dataset is the last open dataset then the instance of the IBM SPSS Statistics
client associated with the current script is terminated.
Syntax
SpssDataDoc.CloseDocument()
GetCaseCount Method
Returns the number of cases in the dataset.
Syntax
SpssDataDoc.GetCaseCount()
GetDatasetName Method
Returns the dataset name. If the dataset is unnamed, an empty string is returned.
Syntax
SpssDataDoc.GetDatasetName()
GetDataUI Method
Returns an SpssDataUI object representing the Data Editor window of the associated dataset, if one
exists.
Syntax
SpssDataUI=SpssDataDoc.GetDataUI()
GetDocumentPath Method
Returns the path and file name of the data file associated with this dataset object, or the empty string if
the dataset is not associated with a file.
GetMenuTable Method
Returns a MenuTableList object containing the list of available menu items for the data document.
Syntax
MenuTableList = SpssDataDoc.GetMenuTable()
GetVariableCount Method
Returns the number of variables in the associated dataset.
Syntax
SpssDataDoc.GetVariableCount()
IsActiveDataDoc Method
Indicates if this dataset is the active one. The result is Boolean--True if the dataset is the active one, False
otherwise.
Syntax
SpssDataDoc.IsActiveDataDoc()
IsEqualTo Method
Indicates if this dataset object is the same object as a specified dataset object. The result is Boolean--
True if the two objects are identical, False otherwise.
Syntax
SpssDataDoc.IsEqualTo(dataDoc)
Parameters
dataDoc. An SpssDataDoc object
IsModified Method
Indicates whether the dataset has been modified. The result is Boolean--True if the dataset has been
modified, False otherwise.
Syntax
SpssDataDoc.IsModified()
IsPromptToSave Method
Indicates if the 'prompt to save' flag is set for this dataset object. The result is Boolean--True if the
'prompt to save' flag has been set, False otherwise.
Syntax
SpssDataDoc.IsPromptToSave()
SaveAs Method
Saves the dataset to the specified file.
SetAsActiveDataDoc Method
Sets this dataset as the active one.
Syntax
SpssDataDoc.SetAsActiveDataDoc()
SetDatasetName Method
Sets the dataset name. The argument is a string.
Syntax
SpssDataDoc.SetDatasetName(name)
SetModified Method
Sets the modified status of the dataset.
Syntax
SpssDataDoc.SetModified(modified)
Parameters
modified. True to set the status to modified, False otherwise.
SetPromptToSave Method
Sets the 'prompt to save' flag for this dataset object.
Syntax
SpssDataDoc.SetPromptToSave(promptToSave)
DataDocsList Class
The DataDocsList class provides access to the list of open datasets. You obtain a DataDocsList
object from the GetDataDocuments method of the SpssClient class.
A DataDocsList object is not an iterable Python object. In order to iterate over the items in the list, use
a for loop, as in:
For an example that uses the DataDocsList class, see the examples for the SpssDataDoc class.
GetItemAt Method
Returns an SpssDataDoc object representing the dataset with the specified index. The index
corresponds to the order in which the datasets were opened, with the first opened document having
an index of 0.
Syntax
SpssDataDoc=DataDocsList.GetItemAt(index)
Size Method
Returns the number of open datasets.
Syntax
DataDocsList.Size()
SpssDataUI Class
The SpssDataUI class represents the Data Editor window associated with an open dataset. You obtain
an SpssDataUI object from the GetDataUI method of an SpssDataDoc object.
Example: Get the SpssDataUI Object Associated with the Active Dataset
import SpssClient
SpssClient.StartClient()
ActiveDataDoc = SpssClient.GetActiveDataDoc()
DataUI = ActiveDataDoc.GetDataUI()
• The variable DataUI is an SpssDataUI object for the Data Editor window associated with the active
dataset.
GetHeight Method
Returns the height of the associated Data Editor window in units of pixels.
Syntax
SpssDataUI.GetHeight()
GetLeft Method
Returns the horizontal screen position of the associated Data Editor window's upper left corner. The result
is in units of pixels.
Syntax
SpssDataUI.GetLeft()
GetShowValueLabels Method
Return the setting for displaying value labels in the associated Data Editor window. The result is Boolean--
True if value labels are displayed, False otherwise.
Syntax
SpssDataUI.GetShowValueLabels()
GetTitleText Method
Returns the title bar text of the associated Data Editor window.
Syntax
SpssDataUI.GetTitleText()
GetTop Method
Returns the vertical screen position of the associated Data Editor window's upper left corner. The result is
in units of pixels.
Syntax
SpssDataUI.GetTop()
GetVisible Method
Indicates if the associated Data Editor window is visible. The result is Boolean--True if the Data Editor
window is visible, False otherwise.
Syntax
SpssDataUI.GetVisible()
GetWidth Method
Returns the width of the associated Data Editor window in units of pixels.
Syntax
SpssDataUI.GetWidth()
GetWindowState Method
Returns the state of the associated Data Editor window.
Syntax
SpssDataUI.GetWindowState()
Returns
InvokeDialog Method
Invokes a dialog and returns the syntax generated from that dialog, if any.
Syntax
syntax = SpssDataUI.InvokeDialog(menuItemPath,desktopParent)
Parameters
menuItemPath. Menu or menu item with path of the dialog to invoke. See below for detailed description.
desktopParent. True specifies that the dialog is parented off the desktop. False specifies that the dialog is
parented off an IBM SPSS Statistics window.
Note: For release 19.0.0.2 and higher, the bSync parameter (available in previous releases) is deprecated.
The InvokeDialog method always runs synchronously, meaning that the scripting process waits until
the dialog has been dismissed. Older scripts containing the bSync parameter will continue to function in
release 19.0.0.2 and higher, but the value of the parameter will be ignored.
Specifying The Menu Item Path
The value of the menuItemPath parameter is a string specifying the menu path to the desired dialog--
for example "analyze>survival>life tables". The greater-than sign (>) is used to separate a menu, its
submenus and the menu item. The menu string must correspond exactly to the text on the menus,
submenus, and menu items, and is language specific.
PrintDataDoc Method
Prints the document.
Syntax
SpssDataUI.PrintDataDoc()
SetHeight Method
Sets the height of the associated Data Editor window.
Syntax
SpssDataUI.SetHeight(height)
Parameters
height. An integer representing the height in pixels.
SetLeft Method
Sets the horizontal screen position of the associated Data Editor window's upper left corner.
Syntax
SpssDataUI.SetLeft(leftPosition)
Parameters
leftPosition. An integer representing the position in pixels.
SetShowValueLabels Method
Specify the setting for displaying value labels in the Data Editor window.
Syntax
SpssDataUI.SetShowValueLabels(isValueLabels)
Parameters
isValueLabels. True if value labels are to be displayed, False otherwise.
SetTop Method
Sets the vertical screen position of the associated Data Editor window's upper left corner.
Syntax
SpssDataUI.SetTop(topPosition)
Parameters
topPosition. An integer representing the position in pixels.
SetVisible Method
Sets the visibility of the associated Data Editor window.
Syntax
SpssDataUI.SetVisible(isVisible)
Parameters
isVisible. True to set the Data Editor window as visible, False otherwise.
SetWidth Method
Sets the width of the associated Data Editor window.
Syntax
SpssDataUI.SetWidth(width)
Parameters
width. An integer representing the width in pixels.
SetWindowState Method
Set the state of the associated Data Editor window.
Syntax
SpssDataUI.SetWindowState(newState)
import SpssClient
SpssClient.StartClient()
DesignatedOutputDoc = SpssClient.GetDesignatedOutputDoc()
• The variable DesignatedOutputDoc is an SpssOutputDoc object for the designated output document.
Example: Obtaining the First Opened Output Document
import SpssClient
SpssClient.StartClient()
OutputDocsList = SpssClient.GetOutputDocuments()
FirstOutputDoc = OutputDocsList.GetItemAt(0)
import SpssClient
SpssClient.StartClient()
NewOutputDoc = SpssClient.NewOutputDoc()
NewOutputDoc.SetAsDesignatedOutputDoc()
• The variable NewOutputDoc is an SpssOutputDoc object for the new output document.
Accessing Output Items in an Output Document
You access individual output items, within an output document, from an OutputItemList object. You
obtain an OutputItemList object from the GetOutputItems method of the SpssOutputDoc class. See
the topic “SpssOutputItem Class ” on page 138 for more information.
ClearSelection Method
Deselects all selected output items or pivot table elements.
Syntax
SpssOutputDoc.ClearSelection()
CloseDocument Method
Closes the output document.
Syntax
SpssOutputDoc.CloseDocument()
CopySpecial Method
Copies selected items to the clipboard in a set of specified formats. Use this method with caution because
it overwrites clipboard content. This method is especially useful when copying large pivot tables since you
can limit the output to just the formats you need. In that regard, the Copy method generates output in all
available formats.
To select individual items, use the SetSelected method. You can also select all items of a given type, such
as all tables using the SelectAllTables method.
Syntax
SpssOutputDoc.CopySpecial(formats)
• The image format is a java raster image and is handled differently by different applications.
• The Windows enhanced metafile (emf) format is only supported when selecting a single output item to
copy to the clipboard.
CreateHeaderItem Method
Returns an SpssOutputItem object for a new header item. To insert the header item into the output
document, use the InsertChildItem method in the SpssHeaderItem class.
Syntax
SpssOutputItem=SpssOutputDoc.CreateHeaderItem(label)
Parameters
label. A string specifying the label for the header item. The value can be specified as plain text, HTML,
or rich text format. For HTML, embed markup in a <html></html> block. For rich text format, specify the
string as a raw string to avoid unintentional escape sequences.
CreateImageChartItem Method
Returns an SpssOutputItem object for a new chart item associated with an external image. This allows
you to insert an external image of type png, jpg, or gif into an output document. To insert the chart item
into the output document, use the InsertChildItem method in the SpssHeaderItem class.
Syntax
SpssOutputItem=SpssOutputDoc.CreateImageChartItem(fileName,label)
Parameters
fileName. Full path to the image file.
label. A string specifying the label for the chart item. The value can be specified as plain text, HTML, or
rich text format. For HTML, embed markup in a <html></html> block. For rich text format, specify the
string as a raw string to avoid unintentional escape sequences.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
CreateTextItem Method
Returns an SpssOutputItem object for a new text item. To insert the text item into the output document,
use the InsertChildItem method in the SpssHeaderItem class.
Syntax
SpssOutputItem=SpssOutputDoc.CreateTextItem(content)
Parameters
content. A string specifying the content of the text item. The value can be specified as plain text, HTML,
or rich text format. For HTML, embed markup in a <html></html> block. For rich text format, specify the
string as a raw string to avoid unintentional escape sequences.
CreateTitleItem Method
Returns an SpssOutputItem object for a new title item. To insert the title item into the output
document, use the InsertChildItem method in the SpssHeaderItem class.
Cut Method
Removes the selected data or text and places them on the clipboard. Use this method with caution
because it overwrites clipboard content.
Syntax
SpssOutputDoc.Cut()
Delete Method
Deletes the selected items.
Syntax
SpssOutputDoc.Delete()
Demote Method
Demotes selected output items down one level within the hierarchy of the output tree.
• You cannot demote an item that is at the deepest level in the output tree and you cannot demote an
item if there are unselected items at the same level immediately preceding it in the output tree.
• If the item has children, the children are also demoted.
• You cannot demote the root item.
Syntax
SpssOutputDoc.Demote()
You can promote items up one level with the Promote method.
ExportCharts Method
Exports charts from this output document.
Syntax
SpssOutputDoc.ExportCharts(subSet,filePrefix,format)
Parameters
subSet. Specifies whether all charts, all visible charts, or all selected charts are exported. See available
choices below.
filePrefix. Full path and file name prefix for the files containing the exported charts. Each chart is exported
to a separate file.
format. Specifies the export format. See available choices below.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
ExportDocument Method
Exports items from this output document.
• If the items to be exported include charts, then they are exported in the last selected graphics format.
The graph export type can be set from the SetExportOption method in the SpssClient class.
• Use the SetOutputOptions method to set export options for export to Word, Excel, or PowerPoint.
Syntax
SpssOutputDoc.ExportDocument(subSet,fileName,format)
Parameters
subSet. Specifies whether all items, all visible items, or all selected items are exported. See available
choices below.
fileName. Full path and file name for the file containing the exported items.
format. Specifies the export format. See available choices below.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
GetCurrentItem Method
Returns an SpssOutputItem object for the current output item--as indicated by a red arrow next to the
item in the outline pane.
Syntax
SpssOutputItem=SpssOutputDoc.GetCurrentItem()
GetDocumentPath Method
Returns the path and file name of the output file associated with this output document object, or the
empty string if the output document is not associated with a file.
Syntax
SpssOutputDoc.GetDocumentPath()
GetFooterText Method
Returns the footer text for printed pages. The value is returned as plain text.
Syntax
SpssOutputDoc.GetFooterText()
GetHeaderText Method
Returns the header text for printed pages. The value is returned as plain text.
Syntax
SpssOutputDoc.GetHeaderText()
GetMenuTable Method
Returns a MenuTableList object containing the list of available menu items for the output document.
Syntax
MenuTableList = SpssOutputDoc.GetMenuTable()
GetOutputItems Method
Returns a list of items in the output document as an OutputItemList object. Each item in the list is an
SpssOutputItem object.
Syntax
OutputItemList=SpssOutputDoc.GetOutputItems()
GetOutputUI Method
Returns an SpssOutputUI object representing the Viewer window associated with the output document,
if one exists.
Syntax
SpssOutputUI=SpssOutputDoc.GetOutputUI()
GetPrintOptions Method
Returns the value of the specified print option, as a string.
Syntax
SpssOutputDoc.GetPrintOptions(printOption)
• All margin settings and Space Between Items are in units of points (1/72 inch).
• For Orientation, 1 corresponds to Portrait and 2 corresponds to Landscape.
InsertTable Method
Inserts an empty pivot table after the item designated as the current item. The inserted table is populated
with default row, column and layer labels, and becomes the current item. Note: You can use the
SetCurrentItem method to designate an item as the current item.
Syntax
index=SpssOutputDoc.InsertTable(heading,nrows,ncolumns,nlayers)
Parameters
heading. A string specifying the heading for this table in the outline pane of the Viewer.
nrows. An integer specifying the number of rows in the table. Specifying zero will result in a table with one
row.
ncolumns. An integer specifying the number of columns in the table. Specifying zero will result in a table
with one column.
nlayers. An integer specifying the number of layers in the table.
Return Value
index. The index of the new table item. The index corresponds to the order of the items in the output
document, starting with 0 for the root item.
Example
This example inserts a pivot table with four rows, three columns and no layers. The table is inserted after
the root item.
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
OutputItem = OutputItems.GetItemAt(0)
OutputItem.SetCurrentItem()
index = OutputDoc.InsertTable("Sample table",4,3,0)
IsDesignatedOutputDoc Method
Indicates if this output document is the designated one. The result is Boolean--True if the output
document is the designated one, False otherwise.
• If you have more than one open output document, output is routed to the designated one.
Syntax
SpssOutputDoc.IsDesignatedOutputDoc()
IsEqualTo Method
Indicates if this output document object is the same object as a specified output document object. The
result is Boolean--True if the two objects are identical, False otherwise.
Syntax
SpssOutputDoc.IsEqualTo(outputDoc)
Parameters
outputDoc. An SpssOutputDoc object
IsModified Method
Indicates whether the output document has been modified. The result is Boolean--True if the output
document has been modified, False otherwise.
IsPromptToSave Method
Indicates if the 'prompt to save' flag is set for this output document object. The result is Boolean--True if
the 'prompt to save' flag has been set, False otherwise.
Syntax
SpssOutputDoc.IsPromptToSave()
Paste Method
Pastes the clipboard content after the current item.
Syntax
SpssOutputDoc.Paste()
PasteBefore Method
Pastes the clipboard content before the current item.
Syntax
SpssOutputDoc.PasteBefore()
PrintRange Method
Sets the print range for the output document.
Syntax
SpssOutputDoc.PrintRange(range)
Parameters
range. An integer specifying the print range: 0 for all expanded output, 1 for all selected items.
You can specify print options using the SetPrintOptions method. You print an output document using the
PrintOutputDoc method from the SpssOutputUI class.
Promote Method
Promotes selected output items up one level within the hierarchy of the output tree.
• You cannot promote an item to the root level and you cannot promote an item if there are unselected
items at the same level immediately following it in the output tree.
• If the item has children, the children are also promoted.
Syntax
SpssOutputDoc.Promote()
You can demote items down one level with the Demote method.
SaveAs Method
Saves the output document to the specified file.
Syntax
SpssOutputDoc.SaveAs(fileName,password=None)
Parameters
SelectAll Method
Selects all items in the output document.
Syntax
SpssOutputDoc.SelectAll()
SelectAllCharts Method
Selects all chart items in the output document. This includes standard charts, graphboard charts, and R
graphics.
Syntax
SpssOutputDoc.SelectAllCharts()
SelectAllLogs Method
Selects all log items in the output document.
Syntax
SpssOutputDoc.SelectAllLogs()
SelectAllModels Method
Selects all Model Viewer items in the output document.
Syntax
SpssOutputDoc.SelectAllModels()
SelectAllNotes Method
Selects all notes items in the output document.
Syntax
SpssOutputDoc.SelectAllNotes()
SelectAllNotesEx Method
Note: This method is deprecated for release 20 and higher. Please use the “SelectAllNotes Method ” on
page 122 instead.
SelectAllOther Method
Selects all non-IBM SPSS Statistics items in the output document.
Syntax
SpssOutputDoc.SelectAllOther()
SelectAllTables Method
Selects all pivot tables in the output document.
Syntax
SpssOutputDoc.SelectAllTables()
SelectAllTablesEx Method
Note: This method is deprecated for release 20 and higher. Please use the “SelectAllTables Method ” on
page 123 instead.
Selects all pivot tables in the output document.
Syntax
SpssOutputDoc.SelectAllTablesEx()
SelectAllText Method
Selects all text items in the output document.
Syntax
SpssOutputDoc.SelectAllText()
SelectAllTitles Method
Selects all title items in the output document.
Syntax
SpssOutputDoc.SelectAllTitles()
SelectAllWarnings Method
Selects all warnings in the output document.
Syntax
SpssOutputDoc.SelectAllWarnings()
SelectAllWarningsEx Method
Note: This method is deprecated for release 20 and higher. Please use the “SelectAllWarnings Method ”
on page 123 instead.
Selects all warnings in the output document.
Syntax
SpssOutputDoc.SelectAllWarningsEx()
SetAsDesignatedOutputDoc Method
Sets this output document as the designated output document.
• If you have more than one open output document, output is routed to the designated one.
Syntax
SpssOutputDoc.SetAsDesignatedOutputDoc()
SetFooterText Method
Sets the footer text for printed pages. The value can be specified as plain text, HTML, or rich text format.
For HTML, embed markup in a <html></html> block. For rich text format, specify the string as a raw string
to avoid unintentional escape sequences.
Syntax
SpssOutputDoc.SetFooterText(text)
SetHeaderText Method
Sets the header text for printed pages. The value can be specified as plain text, HTML, or rich text format.
For HTML, embed markup in a <html></html> block. For rich text format, specify the string as a raw string
to avoid unintentional escape sequences.
Syntax
SpssOutputDoc.SetHeaderText(text)
SetModified Method
Sets the modified status of the output document.
Syntax
SpssOutputDoc.SetModified(modified)
Parameters
modified. True to set the status to modified, False otherwise.
SetOutputOptions Method
Sets export options for this output document. These options apply when exporting with the
ExportDocument method from the SpssOutputDoc class as well as the ExportToDocument method
from the SpssOutputItem class.
Syntax
SpssOutputDoc.SetOutputOptions(option,setting)
Parameters
The available values for the option parameter as well as the allowed values of the associated setting are
(specify the name of the option without quotes):
SpssClient.DocExportOption.ExcelSheetNames. The setting is a string specifying the name of the sheet
to which items will be exported. Sheet names cannot exceed 31 characters and cannot contain forward
or back slashes, square brackets, question marks, or asterisks. If the specified worksheet doesn't exist in
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputDoc.SetOutputOptions(SpssClient.DocExportOption.ExcelSheetNames,"mysheet")
OutputDoc.SetOutputOptions(SpssClient.DocExportOption.ExcelStartingCell,"B6")
OutputDoc.SetOutputOptions(SpssClient.DocExportOption.ExcelLocationOptions,
"OverwriteAtCellRef")
OutputDoc.SetOutputOptions(SpssClient.DocExportOption.ExcelOperationOptions,
"ModifyWorksheet")
OutputItems = OutputDoc.GetOutputItems()
for index in range(OutputItems.Size()):
OutputItem = OutputItems.GetItemAt(index)
if OutputItem.GetType() == SpssClient.OutputItemType.PIVOT:
OutputItem.SetSelected(True)
OutputDoc.ExportDocument(SpssClient.SpssExportSubset.SpssSelected,
"/output/myexport.xls",
SpssClient.DocExportFormat.SpssFormatXls)
SetPrintOptions Method
Sets the value of the specified print option.
Syntax
SpssOutputDoc.SetPrintOptions(printOption,value)
SetPromptToSave Method
Sets the 'prompt to save' flag for this output document object.
Syntax
SpssOutputDoc.SetPromptToSave(promptToSave)
Parameters
promptToSave. True to set the prompt to save flag, False otherwise.
OutputDocsList Class
The OutputDocsList class provides access to the list of open output documents. You obtain an
OutputDocsList object from the GetOutputDocuments method of the SpssClient class.
An OutputDocsList object is not an iterable Python object. In order to iterate over the items in the list,
use a for loop, as in:
For an example that uses the OutputDocsList class, see the examples for the SpssOutputDoc class.
GetItemAt Method
Returns an SpssOutputDoc object representing the output document with the specified index. The index
corresponds to the order in which the output documents were opened, with the first opened document
having an index of 0.
Syntax
SpssOutputDoc=OutputDocsList.GetItemAt(index)
Size Method
Returns the number of open output documents.
Syntax
OutputDocsList.Size()
OutputItemList Class
The OutputItemList class provides access to the list of items in an open output document. You obtain
an OutputItemList object from the GetOutputItems method of an SpssOutputDoc object.
An OutputItemList object is not an iterable Python object. In order to iterate over the items in the list,
use a for loop, as in:
For an example that uses the OutputItemList class, see the example for the SpssOutputItem class.
GetItemAt Method
Returns an SpssOutputItem object corresponding to the output item with the specified index. The index
corresponds to the order of the items in the output document, starting with 0 for the root item.
Syntax
Size Method
Returns the number of items in the associated output document.
Syntax
OutputItemList.Size()
SpssOutputUI Class
The SpssOutputUI class represents the Viewer window associated with an open output document. You
obtain an SpssOutputUI object from the GetOutputUI method of an SpssOutputDoc object.
Example: Get the SpssOutputUI Object Associated with the Designated Output Document
import SpssClient
SpssClient.StartClient()
DesignatedOutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputUI = DesignatedOutputDoc.GetOutputUI()
• The variable OutputUI is an SpssOutputUI object for the Viewer window associated with the
designated output document.
GetHeight Method
Returns the height of the associated Viewer window in units of pixels.
Syntax
SpssOutputUI.GetHeight()
GetLeft Method
Returns the horizontal screen position of the associated Viewer window's upper left corner. The result is
in units of pixels.
Syntax
SpssOutputUI.GetLeft()
GetSplitterPosition Method
Returns the position of the splitter bar in the associated Viewer window. The result is in units of pixels.
The splitter bar determines how large the outline area is.
Syntax
SpssOutputUI.GetSplitterPosition()
GetTitleText Method
Returns the title bar text of the associated Viewer window.
Syntax
SpssOutputUI.GetTitleText()
GetTop Method
Returns the vertical screen position of the associated Viewer window's upper left corner. The result is in
units of pixels.
Syntax
SpssOutputUI.GetTop()
GetWidth Method
Returns the width of the associated Viewer window in units of pixels.
Syntax
SpssOutputUI.GetWidth()
GetWindowState Method
Returns the state of the associated Viewer window.
Syntax
SpssOutputUI.GetWindowState()
Returns
InvokeDialog Method
Invokes a dialog and returns the syntax generated from that dialog, if any.
Syntax
syntax = SpssOutputUI.InvokeDialog(menuItemPath,desktopParent)
Parameters
menuItemPath. Menu or menu item with path of the dialog to invoke. See below for detailed description.
desktopParent. True specifies that the dialog is parented off the desktop. False specifies that the dialog is
parented off an IBM SPSS Statistics window.
Note: For release 19.0.0.2 and higher, the bSync parameter (available in previous releases) is deprecated.
The InvokeDialog method always runs synchronously, meaning that the scripting process waits until
the dialog has been dismissed. Older scripts containing the bSync parameter will continue to function in
release 19.0.0.2 and higher, but the value of the parameter will be ignored.
Specifying The Menu Item Path
The value of the menuItemPath parameter is a string specifying the menu path to the desired dialog--
for example "analyze>survival>life tables". The greater-than sign (>) is used to separate a menu, its
submenus and the menu item. The menu string must correspond exactly to the text on the menus,
submenus, and menu items, and is language specific.
PrintOutputDoc Method
Prints the document.
SetHeight Method
Sets the height of the associated Viewer window.
Syntax
SpssOutputUI.SetHeight(height)
Parameters
height. An integer representing the height in pixels.
SetLeft Method
Sets the horizontal screen position of the associated Viewer window's upper left corner.
Syntax
SpssOutputUI.SetLeft(leftPosition)
Parameters
leftPosition. An integer representing the position in pixels.
SetSplitterPosition Method
Sets the position of the splitter bar in the associated Viewer window. The splitter bar determines how
large the outline area is.
Syntax
SpssOutputUI.SetSplitterPosition(position)
Parameters
position. An integer representing the position in pixels.
SetTop Method
Sets the vertical screen position of the associated Viewer window's upper left corner.
Syntax
SpssOutputUI.SetTop(topPosition)
Parameters
topPosition. An integer representing the position in pixels.
SetVisible Method
Sets the visibility of the associated Viewer window.
Syntax
SpssOutputUI.SetVisible(isVisible)
Parameters
isVisible. True to set the Viewer window as visible, False otherwise.
SetWindowState Method
Sets the state of the associated Viewer window.
Syntax
SpssOutputUI.SetWindowState(newState)
import SpssClient
SpssClient.StartClient()
DesignatedSyntaxDoc = SpssClient.GetDesignatedSyntaxDoc()
• The variable DesignatedSyntaxDoc is an SpssSyntaxDoc object for the designated syntax document.
Example: Obtaining the First Opened Syntax Document
import SpssClient
SpssClient.StartClient()
SyntaxDocsList = SpssClient.GetSyntaxDocuments()
FirstSyntaxDoc = SyntaxDocsList.GetItemAt(0)
import SpssClient
SpssClient.StartClient()
NewSyntaxDoc = SpssClient.NewSyntaxDoc()
NewSyntaxDoc.SetAsDesignatedSyntaxDoc()
• The variable NewSyntaxDoc is an SpssSyntaxDoc object for the new syntax document.
GetDocumentPath Method
Returns the path and file name of the syntax file associated with this syntax document object, or the
empty string if the syntax document is not associated with a file.
Syntax
SpssSyntaxDoc.GetDocumentPath()
GetMenuTable Method
Returns a MenuTableList object containing the list of available menu items for the syntax document.
Syntax
MenuTableList = SpssSyntaxDoc.GetMenuTable()
GetSyntax Method
Returns the syntax contained in the associated syntax document, as a unicode string.
Syntax
SpssSyntaxDoc.GetSyntax()
GetSyntaxUI Method
Returns an SpssSyntaxUI object representing the syntax window associated with the syntax document.
Syntax
SpssSyntaxUI=SpssSyntaxDoc.GetSyntaxUI()
IsDesignatedSyntaxDoc Method
Indicates if this syntax document is the designated one. The result is Boolean--True if the syntax
document is the designated one, False otherwise.
• If you have more than one open syntax document, command syntax is pasted into the designated one.
Syntax
SpssSyntaxDoc.IsDesignatedSyntaxDoc()
IsEqualTo Method
Indicates if this syntax document object is the same object as a specified syntax document object. The
result is Boolean--True if the two objects are identical, False otherwise.
Syntax
SpssSyntaxDoc.IsEqualTo(syntaxDoc)
Parameters
syntaxDoc. An SpssSyntaxDoc object
IsPromptToSave Method
Indicates if the 'prompt to save' flag is set for this syntax document object. The result is Boolean--True if
the 'prompt to save' flag has been set, False otherwise.
Syntax
SpssSyntaxDoc.IsPromptToSave()
RunSyntax Method
Runs all of the syntax in the associated syntax document.
• The submitted commands are executed synchronously with any other submitted command syntax.
• This method cannot be called within a script that is run from the SCRIPT command. It is also not
available when called from a Python program in distributed mode (Python programs make use of the
interface exposed by the Python spss module).
Syntax
SpssSyntaxDoc.RunSyntax()
SaveAs Method
Saves the syntax document to the specified file.
Syntax
SpssSyntaxDoc.SaveAs(fileName,password=None)
Parameters
fileName. The path and file name of the syntax file, as a string. If you are encrypting the file with a
password then specify .spsx as the file extension.
password. An optional string that specifies the password that is required to open the file. This setting
applies only if you want to encrypt the syntax file. Passwords are limited to 10 characters and are
case-sensitive. All spaces, including leading and trailing spaces, are retained.
Creating strong passwords
• Use eight or more characters.
• Include numbers, symbols and even punctuation in your password.
• Avoid sequences of numbers or characters, such as "123" and "abc", and avoid repetition, such as
"111aaa".
• Do not create passwords that use personal information such as birthdays or nicknames.
• Periodically change the password.
Warning: Passwords cannot be recovered if they are lost. If the password is lost the file cannot be opened.
Note: Encrypted data files and output documents cannot be opened in versions of IBM SPSS Statistics
prior to version 21. Encrypted syntax files cannot be opened in versions prior to version 22.
SetAsDesignatedSyntaxDoc Method
Sets this syntax document as the designated syntax document.
SetModified Method
Sets the modified status of the syntax document.
Syntax
SpssSyntaxDoc.SetModified(modified)
Parameters
modified. True to set the status to modified, False otherwise.
SetPromptToSave Method
Sets the 'prompt to save' flag for this syntax document object.
Syntax
SpssSyntaxDoc.SetPromptToSave(promptToSave)
Parameters
promptToSave. True to set the prompt to save flag, False otherwise.
SetSyntax Method
Specifies the content of the associated syntax document and replaces any existing content.
Syntax
SpssSyntaxDoc.SetSyntax(syntax)
Parameters
syntax. A string specifying the syntax. You can include line breaks using the escape sequence "\n", and
you can use a triple-quoted string as shown in the example.
Example
SpssSyntaxDoc.SetSyntax(r"""DESCRIPTIVES
VARIABLES=salary salbegin jobtime prevexp
/STATISTICS=MEAN STDDEV MIN MAX.""")
• Using a triple-quoted string--as in this example--allows you to specify a block of syntax commands on
multiple lines. You can use either triple single quotes or triple double quotes, but you must use the
same type (single or double) on both sides of the specified string.
• Notice that the triple-quoted expression is prefixed with the letter r. The r prefix to a string specifies
Python's raw mode. In raw mode, Python treats all backslashes in the string as the backslash character
and not as the start of an escape sequence.
SyntaxDocsList Class
The SyntaxDocsList class provides access to the list of open syntax documents. You obtain a
SyntaxDocsList object from the GetSyntaxDocuments method of the SpssClient class.
A SyntaxDocsList object is not an iterable Python object. In order to iterate over the items in the list,
use a for loop, as in:
For an example that uses the SyntaxDocsList class, see the examples for the SpssSyntaxDoc class.
Size Method
Returns the number of open syntax documents.
Syntax
SyntaxDocsList.Size()
SpssSyntaxUI Class
The SpssSyntaxUI class represents the Syntax Editor window associated with an open syntax
document. You obtain an SpssSyntaxUI object from the GetSyntaxUI method of an SpssSyntaxDoc
object.
Example: Get the SpssSyntaxUI Object Associated with the Designated Syntax Document
import SpssClient
SpssClient.StartClient()
DesignatedSyntaxDoc = SpssClient.GetDesignatedSyntaxDoc()
SyntaxUI = DesignatedSyntaxDoc.GetSyntaxUI()
• The variable SyntaxUI is an SpssSyntaxUI object for the Syntax Editor window associated with the
designated syntax document.
GetHeight Method
Returns the height of the associated Syntax Editor window in units of pixels.
Syntax
SpssSyntaxUI.GetHeight()
GetLeft Method
Returns the horizontal screen position of the associated Syntax Editor window's upper left corner. The
result is in units of pixels.
Syntax
SpssSyntaxUI.GetLeft()
GetTitleText Method
Returns the title bar text of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.GetTitleText()
GetTop Method
Returns the vertical screen position of the associated Syntax Editor window's upper left corner. The result
is in units of pixels.
Syntax
SpssSyntaxUI.GetTop()
GetWidth Method
Returns the width of the associated Syntax Editor window in units of pixels.
Syntax
SpssSyntaxUI.GetWidth()
GetWindowState Method
Returns the state of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.GetWindowState()
InvokeDialog Method
Invokes a dialog and returns the syntax generated from that dialog, if any.
Syntax
syntax = SpssSyntaxUI.InvokeDialog(menuItemPath,desktopParent)
Parameters
menuItemPath. Menu or menu item with path of the dialog to invoke. See below for detailed description.
desktopParent. True specifies that the dialog is parented off the desktop. False specifies that the dialog is
parented off an IBM SPSS Statistics window.
Note: For release 19.0.0.2 and higher, the bSync parameter (available in previous releases) is deprecated.
The InvokeDialog method always runs synchronously, meaning that the scripting process waits until
the dialog has been dismissed. Older scripts containing the bSync parameter will continue to function in
release 19.0.0.2 and higher, but the value of the parameter will be ignored.
Specifying The Menu Item Path
The value of the menuItemPath parameter is a string specifying the menu path to the desired dialog--
for example "analyze>survival>life tables". The greater-than sign (>) is used to separate a menu, its
submenus and the menu item. The menu string must correspond exactly to the text on the menus,
submenus, and menu items, and is language specific.
PrintSyntaxDoc Method
Prints the document.
Syntax
SetHeight Method
Sets the height of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.SetHeight(height)
Parameters
height. An integer representing the height in pixels.
SetLeft Method
Sets the horizontal screen position of the associated Syntax Editor window's upper left corner.
Syntax
SpssSyntaxUI.SetLeft(leftPosition)
Parameters
leftPosition. An integer representing the position in pixels.
SetTop Method
Sets the vertical screen position of the associated Syntax Editor window's upper left corner.
Syntax
SpssSyntaxUI.SetTop(topPosition)
Parameters
topPosition. An integer representing the position in pixels.
SetVisible Method
Sets the visibility of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.SetVisible(isVisible)
Parameters
isVisible. True to set the Syntax Editor window as visible, False otherwise.
SetWidth Method
Sets the width of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.SetWidth(width)
Parameters
width. An integer representing the width in pixels.
SetWindowState Method
Set the state of the associated Syntax Editor window.
Syntax
SpssSyntaxUI.SetWindowState(newState)
Output Items
SpssOutputItem Class
The SpssOutputItem class represents any item in an output document. You get an SpssOutputItem
object from an OutputItemList object.
Example: Exporting the First Pivot Table to HTML
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItemList = OutputDoc.GetOutputItems()
ConvertToStdTable Method
This method is obsolete for release 20 and higher. Note: Lightweight tables created in IBM SPSS Statistics
release 19 automatically have full support for pivoting and editing in release 20 or later.
ExportToDocument Method
Exports this output item in the specified document format.
• This method cannot be used for exporting chart items. To export a chart item, use the ExportToImage
method.
• See SetOutputOptions for options available when exporting to Word, Excel, or PowerPoint.
Syntax
SpssOutputItem.ExportToDocument(fileName,format)
ExportToImage Method
Exports this output item in the specified image format.
• This method can only be used for exporting charts, trees, and Model Viewer items. To export other item
types, use the ExportToDocument method.
• When used for a Model Viewer item, the method exports the view displayed in the Viewer. You can
export all views using the “ExportAllViews Method ” on page 146.
Syntax
SpssOutputItem.ExportToImage(fileName,format)
GetAlignment Method
Returns the alignment for this output item.
Syntax
SpssOutputItem.GetAlignment()
Returns
if SpssOutputItem.GetAlignment() == 0:
GetDescription Method
Returns the name of this output item as it appears in the outline pane of the Viewer.
Syntax
SpssOutputItem.GetDescription()
GetHeight Method
Returns the height of this output item in units of points (1/72 inch).
• This method is not available for header items or root items.
Syntax
SpssOutputItem.GetHeight()
GetPageBreak Method
Indicates whether a page break is set before this item. The result is Boolean--True if the page break is set,
False otherwise.
Syntax
SpssOutputItem.GetPageBreak()
GetParentItem Method
Returns an SpssOutputItem object representing the parent item of this output item.
Syntax
SpssOutputItem.GetParentItem()
GetProcedureName Method
Returns the name of the IBM SPSS Statistics procedure that generated this output item. The value is the
OMS command identifier associated with the procedure.
Syntax
SpssOutputItem.GetProcedureName()
GetSpecificType Method
Returns an object of a specific output type, such as a pivot table or header item. You will need to
call this method before using methods specific to that type of output item. For example, before you
can use the methods available for a pivot table, you must call GetSpecificType on the associated
SpssOutputItem object. The set of output types is listed in the description of the GetType method.
Syntax
object=SpssOutputItem.GetSpecificType()
For an example of using the GetSpecificType method, see “SpssPivotTable Class ” on page 152.
GetSubType Method
Returns the OMS (Output Management System) sub type identifier, if any, of this output item.
GetTreeLevel Method
Returns the level of this item within the hierarchy of the output tree. For instance, the root item is at level
0, and header items beneath the root are at level 1.
Syntax
SpssOutputItem.GetTreeLevel()
GetType Method
Returns the type associated with this output item.
Syntax
SpssOutputItem.GetType()
When testing for a particular output type with the return value from GetType, you can use the integer
type code or the textual specification of the type. For an example of using the GetType method, see
“SpssPivotTable Class ” on page 152.
Notes
• Standard charts, graphboard charts, and R graphics all have the type
SpssClient.OutputItemType.CHART. To distinguish between these chart types, use the
SPSSSubtype method on the associated SpssChartItem object.
GetTypeString Method
Returns the type string of this output item. The returned value is not translated.
Syntax
SpssOutputItem.GetTypeString()
Returns
Returns one of the following strings: "Chart", "Log", "Notes", "Table", "Text", "Warning", "Title", "PageTitle",
"TreeDiagram", "Model".
Notes
• Standard charts, graphboard charts, and R graphics all have the type string 'Chart'. To distinguish
between these chart types, use the SPSSSubtype method on the associated SpssChartItem object.
• Lightweight Notes items, lightweight Pivot Table items, and lightweight Warnings items created in
release 19 will have the type strings Notes, Table, and Warning respectively when accessed in release
20 or higher.
GetWidth Method
Returns the width of this output item in units of points (1/72 inch).
• This method is not available for header items or root items.
Syntax
SpssOutputItem.GetWidth()
GetXML Method
Returns the XML representation for an SpssChartItem or SpssModelItem, as a Unicode string.
Syntax
SpssOutputItem.GetXML()
You can set the XML for a chart item using the SetXML method from the SpssChartItem class. You can
set the XML for a Model Viewer item using the SetXML method from the SpssModelItem class.
IsCurrentItem Method
Indicates if this output item is the current item--as indicated by a red arrow next to the item in the outline
pane. The result is Boolean--True if the item is the current item, False otherwise.
Syntax
SpssOutputItem.IsCurrentItem()
IsEditable Method
Indicates whether this output item can be edited. The result is Boolean--True if the item can be edited,
False otherwise.
IsEqualTo Method
Indicates if this output item object is the same object as a specified output item object. The result is
Boolean--True if the two objects are identical, False otherwise.
Syntax
SpssOutputItem.IsEqualTo(outputItem)
Parameters
outputItem. An SpssOutputItem object
IsSelected Method
Indicates whether the current output item is selected. The result is Boolean--True if the item is currently
selected, False otherwise. Use the SetSelected method to select an item.
Syntax
SpssOutputItem.IsSelected()
IsVisible Method
Indicates if this output item is visible. The result is Boolean--True if the item is visible, False if it is hidden.
Syntax
SpssOutputItem.IsVisible()
SetAlignment Method
Sets the alignment for this output item.
Syntax
SpssOutputItem.SetAlignment(alignment)
SetCurrentItem Method
Sets the item as the current item--as indicated by a red arrow next to the item in the outline pane.
Syntax
SpssOutputItem.SetCurrentItem()
SetDescription Method
Sets the name of this output item. This is the name that is displayed in the outline pane of the Viewer.
The value can be specified as plain text, HTML, or rich text format. For HTML, embed markup in a
<html></html> block. For rich text format, specify the string as a raw string to avoid unintentional escape
sequences.
SetHeight Method
Sets the height of this output item in units of points (1/72 inch).
• This method is not available for pivot tables, header items, or the root item.
Syntax
SpssOutputItem.SetHeight(height)
SetPageBreak Method
Sets or clears a page break before this item.
Syntax
SpssOutputItem.SetPageBreak(pageBreak)
Parameters
pageBreak. True to set a page break, False to clear a page break.
SetProcedureName Method
Sets the procedure name associated with this output item. The argument is a string and is not translated.
Syntax
SpssOutputItem.SetProcedureName(procName)
SetSelected Method
Specifies whether the current output item is set as selected. You can use the IsSelected method to
determine if a given item is already selected.
Syntax
SpssOutputItem.SetSelected(selected)
Parameters
selected. True to set this item as selected, False to set it as not selected.
SetSubType Method
Sets the OMS (Output Management System) sub-type identifier of this output item.
Syntax
SpssOutputItem.SetSubType(subType)
Parameters
subType. A string
SetTreeLevel Method
Sets the level of this item within the hierarchy of the output tree. For instance, the root item is at level 0,
and header items beneath the root are at level 1.
Syntax
SpssOutputItem.SetTreeLevel(level)
Parameters
SetVisible Method
Specifies whether this output item is visible.
Syntax
SpssOutputItem.SetVisible(visible)
Parameters
visible. True to set the item as visible, False to set it as hidden.
SetWidth Method
Sets the width of this output item in units of points (1/72 inch).
• This method is not available for pivot tables, header items, or the root item.
Syntax
SpssOutputItem.SetWidth(width)
SpssChartItem Class
The SpssChartItem class represents a chart item in an output document. You get an SpssChartItem
object from the collection of output items in an output document.
Example: Getting Chart Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
SetXML Method
Sets the chart XML from a UTF-8 (Unicode Transformation Format, 8 bit) string.
Syntax
SpssChartItem.SetXML(xml)
You can get the XML for a chart item using the GetXML method from the SpssOutputItem class. You can
also use chart XML (OXML) created by the OMS command as the source for SetXML. To do so, extract the
visualization element from the OXML, decode the resulting string to "UTF-8" (e.g., with the Python
decode string method), and use the decoded string as the argument to SetXML.
SPSSSubtype Method
Returns a string specifying the type of chart.
Syntax
SpssChartItem.SPSSSubtype()
SpssModelItem Class
The SpssModelItem class represents a Model Viewer item in an output document. You get an
SpssModelItem object from the collection of output items in an output document.
Example: Getting Model Viewer Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
ExportAllViews Method
Exports all views of this Model Viewer item in the specified image format.
Syntax
SpssModelItem.ExportAllViews(filePrefix,format)
Parameters
The argument filePrefix is the full path and file name prefix for the files containing the exported views.
Each view is exported to a separate file.
On Windows, it is recommended to use raw strings for file paths, or replace backslashes with forward
slashes (IBM SPSS Statistics accepts a forward slash for any backslash in a file specification). Raw strings
are specified by prefacing the string with r, as in r'c:\examples\mydata.sav'. In raw mode, Python treats all
backslashes in the string as the backslash character and not as the start of an escape sequence.
You can export the view displayed in the Viewer using the “ExportToImage Method ” on page 139.
SpssHeaderItem Class
The SpssHeaderItem class represents a header item in an output document. You get an
SpssHeaderItem object from the collection of output items in an output document.
Example: Getting Header Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
GetChildCount Method
Returns the child item count for this header item.
Syntax
SpssHeaderItem.GetChildCount()
GetChildItem Method
Returns an SpssOutputItem object for the child item at the specified index. Index values start from 0.
Syntax
SpssOutputItem=SpssHeaderItem.GetChildItem(index)
InsertChildItem Method
Inserts a child item--at the specified index--under the current header item in the associated output
document. Index values start from 0 and are relative to the current header item.
• Use this method to insert header items, text items, and title items created with the
CreateHeaderItem, CreateTextItem, and CreateTitleItem methods from the SpssOutputDoc
class.
Syntax
SpssHeaderItem.InsertChildItem(item,index)
Parameters
item. An SpssOutputItem object
import SpssClient
SpssClient.StartClient()
doc = SpssClient.GetDesignatedOutputDoc()
itemlist = doc.GetOutputItems()
# Get the root header item
root = itemlist.GetItemAt(0).GetSpecificType()
# Create a new header item
newHeader = doc.CreateHeaderItem("New header")
# Append the new header to the root item
root.InsertChildItem(newHeader,root.GetChildCount())
# Get the new header item
newHeaderItem = root.GetChildItem(root.GetChildCount()-1).GetSpecificType()
# Create a new text item
newText = doc.CreateTextItem("New text")
# Append the new text item to the new header item
newHeaderItem.InsertChildItem(newText,0)
SpssClient.StopClient()
import SpssClient
SpssClient.StartClient()
doc = SpssClient.GetDesignatedOutputDoc()
OutputItems = doc.GetOutputItems()
for index in range(OutputItems.Size()):
OutputItem = OutputItems.GetItemAt(index)
if OutputItem.GetType() == SpssClient.OutputItemType.HEAD \
and OutputItem.GetDescription() == "Demo":
HeaderItem = OutputItem.GetSpecificType()
newText = doc.CreateTextItem("My inserted text")
HeaderItem.InsertChildItem(newText,1)
SpssClient.StopClient()
IsExpanded Method
Indicates whether the associated header item is expanded. The result is Boolean--True if the header item
is expanded, False otherwise.
Syntax
SpssHeaderItem.IsExpanded()
RemoveChildItem Method
Removes the child item at the specified index. Index values start from 0.
Syntax
SpssHeaderItem.RemoveChildItem(index)
SetExpanded Method
Sets whether the associated header item is expanded.
Syntax
SpssHeaderItem.SetExpanded(expand)
Parameters
expand. True to expand the item, False to collapse the item.
SpssLogItem Class
The SpssLogItem class represents a log item in an output document. You get an SpssLogItem object
from the collection of output items in an output document.
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
Append Method
Appends the specified text to the contents of the associated log output item.
Syntax
SpssLogItem.Append(text)
GetTextContents Method
Returns the contents of the associated log output item. The value is returned as plain text.
Syntax
SpssLogItem.GetTextContents()
SetTextContents Method
Sets the contents of the associated log output item, replacing any existing content. The value can be
specified as plain text, HTML, or rich text format. For HTML, embed markup in a <html></html> block. For
rich text format, specify the string as a raw string to avoid unintentional escape sequences. For multiple
lines, use "\n" to specify line breaks.
Syntax
SpssLogItem.SetTextContents(contents)
SpssTextItem Class
The SpssTextItem class represents a text item in an output document. You get an SpssTextItem
object from the collection of output items in an output document.
Example: Getting Text Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
GetTextContents Method
Returns the contents of the associated text output item. The value is returned as plain text.
SetTextContents Method
Sets the contents of the associated text output item, replacing any existing content. The value can be
specified as plain text, HTML, or rich text format. For HTML, embed markup in a <html></html> block. For
rich text format, specify the string as a raw string to avoid unintentional escape sequences. For multiple
lines, use "\n" to specify line breaks.
Syntax
SpssTextItem.SetTextContents(contents)
SpssTitleItem Class
The SpssTitleItem class represents a title item in an output document. You get an SpssTitleItem
object from the collection of output items in an output document.
Example: Getting Title Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
GetTextContents Method
Returns the contents of the associated title output item. The value is returned as plain text.
Syntax
SpssTitleItem.GetTextContents()
SetTextContents Method
Sets the contents of the associated title output item, replacing any existing content. The value can be
specified as plain text, HTML, or rich text format. For HTML, embed markup in a <html></html> block. For
rich text format, specify the string as a raw string to avoid unintentional escape sequences.
Syntax
SpssTitleItem.SetTextContents(contents)
Menus
MenuTableList Class
The MenuTableList class provides access to the list of available menu items for a data, output,
or syntax document. You obtain a MenuTableList object from the GetMenuTable method of an
SpssDataDoc, SpssOutputDoc, or SpssSyntaxDoc object.
For an example that uses the MenuTableList class, see the example for the SpssMenuItem class.
GetItemAt Method
Returns an SpssMenuItem object representing the menu item with the specified index.
Syntax
SpssMenuItem=MenuTableList.GetItemAt(index)
Size Method
Returns the number of items in a MenuTableList object.
Syntax
MenuTableList.Size()
SpssMenuItem Class
The SpssMenuItem class represents a menu item in a data, output, or syntax document. You get an
SpssMenuItem object from the GetItemAt method of a MenuTableList object.
Example: Getting a List of Menu Items
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
MenuTableList = OutputDoc.GetMenuTable()
strMenuItemList = []
for i in range(MenuTableList.Size()):
item = MenuTableList.GetItemAt(i)
strMenuItemList.append(item.GetTextContents())
GetTextContents Method
Returns the name of the menu item (as a string) associated with an SpssMenuItem object.
Syntax
SpssMenuItem.GetTextContents()
Pivot Tables
Pivot Tables
The scripting facility allows you to do most of the things you can do in the pivot table editor, through
use of the SpssPivotTable class. There are two general approaches for working with pivot tables from
scripting:
• Select groups of cells (results or labels) or other elements (such as footnotes) and apply methods that
modify the entire selection. For example, you can change the foreground color for selected cells.
• Access a subset of the pivot table, such as its data cells or row labels, and modify a particular element
in the subset. For example, you can access the data cells and call a method to set the foreground color
for a specified cell.
Generally speaking, if you want to modify a number of elements in the same manner, the first approach is
faster.
Areas of a Pivot Table
Available Objects
The SpssPivotTable object provides access to the following objects:
• SpssDataCells Provides access to the data cells.
• SpssLabels Provides access to the row and column labels.
• SpssFootnotes Provides access to all of the table's footnotes.
• SpssLayerLabels Provides access to labels in any layer dimensions.
• SpssPivotMgr Provides access to row, column, and layer dimensions.
• SpssDimension Provides access to the properties of a particular dimension.
SpssPivotTable Class
The SpssPivotTable class allows you to operate on the table as a whole as well as providing access to
objects for working with the footnotes, data cells, row or column labels, and layer labels associated with
the table. Pivot tables are output items and are accessed from the list of output items associated with an
output document.
Example: Getting Pivot Tables
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
import SpssClient
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItems = OutputDoc.GetOutputItems()
Autofit Method
Recalculates the size of all cells in the entire table to accommodate label lengths or the lengths of both
labels and data values.
• To specify how the cells are to be recalculated (labels only or labels and data), use the SetPreference
method from the SpssClient class and specify SpssClient.PreferenceOptions.ColumnWidth
as the option.
Syntax
SpssPivotTable.Autofit()
ClearSelection Method
Deselects all selected output items or pivot table elements.
• All Select methods add the current item(s)/element(s) to what has been previously selected. Always
clear selections before you start selecting output items or table elements.
Syntax
SpssPivotTable.ClearSelection()
ColumnLabelArray Method
Returns an SpssLabels object representing the column labels.
Syntax
SpssLabels=SpssPivotTable.ColumnLabelArray()
DataCellArray Method
Returns an SpssDataCells object representing the data cells of the pivot table.
Syntax
DisplayTableByRows Method
Specifies whether to display the table n rows at a time, where n is set with the
SetRowsToDisplayRowCount method. The argument is Boolean--True to display the table n rows at a
time, False otherwise.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.DisplayTableByRows(boolean)
FootnotesArray Method
Returns an SpssFootnotes object representing the table footnotes.
Syntax
SpssFootnotes=SpssPivotTable.FootnotesArray()
GetCaptionText Method
Returns the caption text for the current table.
Syntax
SpssPivotTable.GetCaptionText()
GetFootnoteMarkersPosition Method
Gets the current position--superscript or subscript--for footnote markers for the pivot table.
Syntax
SpssPivotTable.GetFootnoteMarkersPosition()
GetFootnoteMarkersStyle Method
Gets the current style--alphabetic or numeric--for footnote markers for the pivot table.
Syntax
SpssPivotTable.GetFootnoteMarkersStyle()
GetHeight Method
Returns the height of the pivot table. The unit is the point (1/72 inch).
GetRotateColumnLabels Method
Indicates if category labels closest to the data (that is, categories of the column dimension with the
largest index) are rotated. The result is Boolean.
Syntax
SpssPivotTable.GetRotateColumnLabels()
Returns
True. The column labels closest to the data are displayed vertically
False. The column labels closest to the data are displayed horizontally
GetRotateRowLabels Method
Indicates if the labels of all but the last row dimension (that is, the row dimension with the largest index)
are rotated. The result is Boolean.
Syntax
SpssPivotTable.GetRotateRowLabels()
Returns
True. The outer row labels are displayed vertically
False. The outer row labels are displayed horizontally
GetSigMarkersType Method
Gets the type of the significance indicators that are used for the pivot table. The method returns None
when the table has no significance indicators. Significance indicators are created for custom tables
(CTABLES) when pairwise comparisons of column proportions or column means are calculated. The
GetSigMarkersType method returns the type only when the indicators are merged into the main table.
Syntax
SpssPivotTable.GetSigMarkersType()
GetTitleText Method
Returns the text of the title for the table.
Syntax
SpssPivotTable.GetTitleText()
GetVarNamesDisplay Method
This method returns the setting for how variable names are displayed in the pivot table: as variable
names, as variable labels, or both.
Note: This method is not supported for legacy tables.
Syntax
SpssPivotTable.GetVarNamesDisplay()
GetVarValuesDisplay Method
This method gets the setting for how variable values are displayed in the pivot table: as values, as value
labels, or both.
Note: This method is not supported for legacy tables.
Syntax
SpssPivotTable.GetVarValuesDisplay()
GetWidowOrphanLines Method
Returns the number of allowable widow/orphan lines when pivot tables are printed.
• Widow lines are the last few lines of a paragraph printed at the top of the next page; orphan lines are the
first few lines of a paragraph printed at the bottom of the previous page.
Syntax
SpssPivotTable.GetWidowOrphanLines()
GetWidth Method
Returns the width of the pivot table. The unit is the point (1/72 inch).
Group Method
Groups selected category labels or group labels, creates a grouping level, and inserts a grouping label.
• The selection must be category or group labels.
• After the execution of this method, the inserted grouping label is selected and has the default label of
Group Label.
• If a new group level is inserted, labels on the same and lower levels are demoted one level. (For column
labels, the row index increases by one; for row labels, the column index increases by one.)
Syntax
SpssPivotTable.Group()
Example
This example assumes that PivotTable is an SpssPivotTable object, selects category column labels
Clerical and Custodial, and groups them under the label of Non-Managerial.
ColumnLabels = PivotTable.ColumnLabelArray()
HideCaption Method
Hides the caption of the current table.
Syntax
SpssPivotTable.HideCaption()
HideFootnote Method
Hides the selected footnotes or all the footnotes referenced by the selected cell.
Syntax
SpssPivotTable.HideFootnote()
HideTitle Method
Hides the title of a pivot table.
Syntax
SpssPivotTable.HideTitle()
InsertFootnote Method
Inserts a footnote to the selected data or label cell.
• If multiple data cells or labels are selected, the footnote is attached to the first selected item.
• To set a footnote for corner text, first set the corner text with the SpssPivotTable.SetCornerText
method.
IsDisplayTableByRows Method
Indicates whether the table is being displayed a fixed number of rows at a time. The result is Boolean--
True if the table is being displayed a fixed number of rows at a time, False otherwise. Use the
DisplayTableByRows method to change the setting.
Note: The feature to display a table a fixed number of rows at a time is only available for legacy tables. See
the topic “Compatibility with previous releases” on page 152 for more information.
Syntax
SpssPivotTable.IsDisplayTableByRows()
IsLegacyTableCompatible Method
Indicates whether row and column labels are indexed in the same manner as for legacy tables. The result
is Boolean--True if row and column labels are indexed in the same manner as for legacy tables, False
otherwise.
• By default, row and column labels are indexed in the same manner as for legacy tables.
• IsLegacyTableCompatible always returns True for legacy tables.
Syntax
SpssPivotTable.IsLegacyTableCompatible()
LayerLabelArray Method
Returns an SpssLayerLabels object representing all layer labels.
Syntax
SpssLayerLabels=SpssPivotTable.LayerLabelArray()
NavigateToFirstRow Method
Displays the first block of rows of the table when displaying the table a fixed number of rows at a time.
Use the DisplayTableByRows method to display the table a fixed number of rows at a time.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.NavigateToFirstRow()
NavigateToLastRow Method
Displays the last block of rows of the table when displaying the table a fixed number of rows at a time. Use
the DisplayTableByRows method to display the table a fixed number of rows at a time.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.NavigateToLastRow()
NavigateToPreviousRows Method
Displays the previous block of rows of the table when displaying the table a fixed number of rows at a
time. Use the DisplayTableByRows method to display the table a fixed number of rows at a time.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.NavigateToPreviousRows()
NumericFormat Method
Sets the display format for numeric values in the selected cells of the current table.
SpssPivotTable.NumericFormat(format,decimal)
Parameters
format
The string description of the format.
Note: When using custom currencies, use CCA through CCE for the format parameter instead of the
format strings in the CellFormat panel.
decimal
Number of decimal places.
For a listing of the format types, see Appendix D, “String Description of Numeric Formats ,” on page 235.
PivotManager Method
Returns an SpssPivotMgr object, providing access to the Pivot Manager.
Syntax
SpssPivotMgr=SpssPivotTable.PivotManager()
RowLabelArray Method
Returns an SpssLabels object representing the row labels.
Syntax
SpssLabels=SpssPivotTable.RowLabelArray()
SelectAllFootnotes Method
Selects all footnotes in the pivot table, in addition to what has already been selected.
Syntax
SpssPivotTable.SelectAllFootnotes()
SelectCorner Method
Selects the corner of the pivot table, in addition to all previously selected elements.
Syntax
SpssPivotTable.SelectCorner()
SelectTable Method
Selects all the elements of a pivot table for modification.
Syntax
SpssPivotTable.SelectTable()
SelectTableBody Method
Selects the body of the pivot table (labels and data cells) for modification.
Syntax
SpssPivotTable.SelectTableBody()
SelectTitle Method
Selects the title of the pivot table for modification.
Syntax
SpssPivotTable.SelectTitle()
SetBackgroundColor Method
Sets the background color of the selected element(s) in the current pivot table.
Syntax
SpssPivotTable.SetBackgroundColor(color)
Parameters
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetBottomMargin Method
Sets the bottom margin of the selected cells in the current pivot table.
Syntax
SpssPivotTable.SetBottomMargin(margin)
Parameters
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetCaptionText Method
Sets the caption text for the current table.
SetCornerText Method
Sets the corner text.
Syntax
SpssPivotTable.SetCornerText(string)
Parameters
string. Corner text
SetDataCellWidths Method
Sets the width of all data cells of the current table.
Syntax
SpssPivotTable.SetDataCellWidths(width)
Parameters
width. An integer. The unit is the point (1/72 inch).
SetFootnoteMarkers Method
Sets the style of footnote markers for the entire table.
Syntax
SpssPivotTable.SetFootnoteMarkers(type)
SetForegroundColor Method
This method is deprecated in release 17.0. Use the SetTextColor method instead.
SetHAlign Method
Sets the horizontal alignment of the selected elements in the current table.
Syntax
SpssPivotTable.SetHAlign(alignment)
SetHDecDigits Method
Sets the number of decimal digits for the selected cells of the pivot table.
Syntax
SpssPivotTable.SetHDecDigits(number)
Parameters
number. Number of decimal digits
SetLeftMargin Method
Sets the left margin of the selected cells in the pivot table.
Syntax
SpssPivotTable.SetLeftMargin(margin)
Parameters
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetLegacyTableCompatible Method
Sets whether row and column labels are indexed in the same manner as for legacy tables. The argument
is Boolean--True if row and column labels are indexed in the same manner as for legacy tables, False
otherwise.
• By default, row and column labels are indexed in the same manner as for legacy tables.
• For tables with hidden rows or columns, you might need to specify
SetLegacyTableCompatible(False).
• SetLegacyTableCompatible has no effect on legacy tables.
Syntax
SpssPivotTable.SetLegacyTableCompatible(boolean)
SetRightMargin Method
Sets the right margin for the selected cells in the pivot table.
Syntax
SpssPivotTable.SetRightMargin(margin)
Parameters
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetRotateColumnLabels Method
Rotates the category labels closest to the data (that is, categories of the column dimension with the
largest index).
SetRotateRowLabels Method
Rotates the labels of all but the last row dimension (that is, the row dimension with the largest index).
Syntax
SpssPivotTable.SetRotateRowLabels(boolean)
Parameters
True. The outer row labels are displayed vertically
False. The outer row labels are displayed horizontally
SetRowsToDisplayRowCount Method
Sets the number of rows to be displayed at a time for the current pivot table. Note that you must also call
the DisplayTableByRows method with an argument of True to specify that the table is to be displayed a
fixed number of rows at a time.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.SetRowsToDisplayRowCount(number)
Parameters
number. An integer specifying the number of rows to display at a time.
SetRowsToDisplayTolerance Method
Sets the widow/orphan tolerance to be used when displaying the table a fixed number of rows at a time
(as set by the DisplayTableByRows method). The default is 0.
• If a break between blocks of rows leaves widow rows equal to or less than the specified tolerance, then
the break point is shifted up in the table to display those rows in the next block.
• If a break between blocks of rows leaves orphan rows equal to or less than the specified tolerance, then
the break point is shifted down in the table to display those rows in the previous block.
• If a break between blocks of rows leaves both widow and orphan rows equal to or less than the
specified tolerance, then the break point is shifted up in the table to display the widow rows in the next
block.
Note: This method is only available for legacy tables. See the topic “Compatibility with previous releases”
on page 152 for more information.
Syntax
SpssPivotTable.SetRowsToDisplayTolerance(number)
Parameters
number. An integer specifying the widow/orphan tolerance.
SetTableLook Method
Applies a predefined table look.
SetTextColor Method
Sets the color of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetTextColor(color)
Parameters
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetTextFont Method
Sets the font of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetTextFont(fontname)
Parameters
fontname. Name of the font family, as a string. Available fonts are accessed from Format>Table Properties
in the pivot table editor.
SetTextHidden Method
Sets the hidden effect of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetTextHidden(boolean)
Parameters
True. Hidden
False. Not hidden
SetTextSize Method
Sets the font size of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetTextSize(size)
Parameters
size. Size in points (integer)
SetTextStyle Method
Sets the bold or italic style of the text in the selected cells of the pivot table.
SetTextUnderlined Method
Sets the underlined effect of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetTextUnderlined(boolean)
Parameters
True. Underlined
False. Not underlined
SetTitleText Method
Sets the text of the title for the pivot table.
Syntax
SpssPivotTable.SetTitleText(title)
Parameters
title. Text of the title
SetTopMargin Method
Sets the top margin of the selected cells in the pivot table.
Syntax
SpssPivotTable.SetTopMargin(margin)
Parameters
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetUpdateScreen Method
Sets whether changes in the pivot table are refreshed immediately. The argument is Boolean--True if
changes are refreshed immediately, False otherwise.
• By default, changes are refreshed immediately.
Syntax
SpssPivotTable.SetUpdateScreen(boolean)
Example
PivotTable.SetUpdateScreen(False)
rowlabels = PivotTable.RowLabelArray()
for i in range(rowlabels.GetNumRows()):
for j in range(rowlabels.GetNumColumns()):
if rowlabels.GetValueAt(i,j)=="Female":
rowlabels.SetValueAt(i,j,"Women")
PivotTable.SetUpdateScreen(True)
Note: Setting the immediate refresh off (parameter set to False) prevents flashing when you make
changes to individual cells in a loop (in internal scripting), but it may also prevent you assessing the
results immediately. A better way is to avoid making changes cell by cell but select the cells and change
the selection using a method on the pivot table object. This is also a faster way.
SetVAlign Method
Sets the vertical alignment of the text in the selected cells of the pivot table.
Syntax
SpssPivotTable.SetVAlign(alignment)
SetVarNamesDisplay Method
This method sets how variable names are displayed in the pivot table: as variable names, as variable
labels, or both.
Note: This method is not supported for legacy tables.
Syntax
SpssPivotTable.SetVarNamesDisplay(display)
SetVarValuesDisplay Method
This method sets how variable values are displayed in the pivot table: as values, as value labels, or both.
Note: This method is not supported for legacy tables.
Syntax
SpssPivotTable.SetVarValuesDisplay(display)
SetWidowOrphanLines Method
Sets the number of allowable widow/orphan lines when pivot tables are printed.
• Widow lines are the last few lines of a paragraph printed at the top of the next page; orphan lines are the
first few lines of a paragraph printed at the bottom of the previous page.
Syntax
SpssPivotTable.SetWidowOrphanLines(number)
Parameters
number. Line limit (integer). The valid range is 1 to 100.
ShowAll Method
Shows all labels and data.
Syntax
SpssPivotTable.ShowAll()
ShowAllFootnotes Method
Shows all footnotes associated with the pivot table.
Syntax
SpssPivotTable.ShowAllFootnotes()
ShowCaption Method
Shows the caption of the pivot table.
Syntax
SpssPivotTable.ShowCaption()
ShowFootnote Method
Shows the hidden footnote(s) referenced by the selected label(s), data cell(s) or title.
• Ignored if no hidden footnote is referenced.
Syntax
SpssPivotTable.ShowFootnote()
ShowTitle Method
Shows the title of the pivot table.
Syntax
SpssPivotTable.ShowTitle()
SpssDataCells Class
The SpssDataCells object provides access to the data cells of a pivot table. In most pivot tables, the
data cells contain the results of the statistical analysis. You need to use the SpssDataCells object if
you want to highlight significant values in the output (for example, making bold all correlation coefficients
that are greater than a specified value) or to retrieve specific statistics from the output (for example, the
means and standard deviations of each group or variable).
The SpssDataCells object represents a 2-dimensional array of the data cells you can view in a pivot
table. If there are no layer dimensions, all of the cells will be accessible; otherwise, the table must be
pivoted in order to fully access the data currently in layer dimensions.
The data cells array has the same number of rows as the row labels array and the same number of
columns as the column labels array. That is to say, row indexes for the row labels and column indexes for
the column labels respectively correspond to the row and column indexes for the data cells.
Note: If the current table has been set to display blocks of rows--either using SET ROWSBREAK or by
checking Display the table as blocks of rows on the Pivot Tables tab of the Options dialog box--then
methods of the SpssDataCells class that access specific cells, such as GetTextColorAt, will only
have access to the first block of rows. Exceptions to this behavior are the GetValueAt, SetValueAt, and
GetUnformattedValueAt methods, which can access all rows of the pivot table, regardless of whether
the table is displayed in blocks of rows.
You get an SpssDataCells object from the DataCellArray method of an SpssPivotTable object, as in:
SpssDataCells = SpssPivotTable.DataCellArray()
DataCells = PivotTable.DataCellArray()
for i in range(DataCells.GetNumRows()):
for j in range(DataCells.GetNumColumns()):
try:
val = float(DataCells.GetValueAt(i,j))
if val < 0.01:
DataCells.SetBackgroundColorAt(i,j,255)
except:
pass
• The value returned from GetValueAt is a unicode string. If the value is a representation of a numeric
value, it is converted to a float, otherwise an exception is raised and control passes to the except
clause. Since the except clause only contains a pass statement, execution continues.
GetBackgroundColorAt Method
Returns the background color of the specified data cell.
Syntax
SpssDataCells.GetBackgroundColorAt(row,column)
Parameters
GetBottomMarginAt Method
Returns the bottom margin of the specified data cell. The unit is the point (1/72 inch).
Syntax
SpssDataCells.GetBottomMarginAt(row,column)
Parameters
row. Row index
column. Column index
GetForegroundColorAt Method
This method is deprecated in release 17.0. Use the GetTextColorAt method instead.
GetHAlignAt Method
Returns the horizontal alignment of the specified data cell.
Syntax
SpssDataCells.GetHAlignAt(row,column)
Parameters
row. Row index
column. Column index
Returns
GetHDecDigitsAt Method
Returns the number of decimal digits allowed in decimal alignment for the specified data cell.
Syntax
SpssDataCells.GetHDecDigitsAt(row,column)
Parameters
row. Row index
column. Column index
GetNumColumns Method
Returns the number of columns in the SpssDataCells object.
Syntax
SpssDataCells.GetNumColumns()
GetNumericFormatAt method
Returns the display format for the numeric value in the specified data cell.
SpssDataCells.GetNumericFormatAt(row,column)
Parameters
row. Row index
column. Column index
Return Value
The string description of the format. For a listing of the format types, see Appendix D, “String Description
of Numeric Formats ,” on page 235.
Note: To obtain detailed format information for custom currency formats use the
GetNumericFormatAtEx method.
GetNumericFormatAtEx method
Returns an SpssNumericFormat object from which you can obtain detailed formatting information for a
specified data cell, such as the prefix, separator, and suffix for a cell with a custom currency format.
SpssNumericFormat=SpssDataCells.GetNumericFormatAtEx(row,column)
Parameters
row. Row index
column. Column index
The SpssNumericFormat object supports two methods. GetFormatListSize indicates the number of
format items available for retrieval--3 if the current cell has a custom currency format, and 1 otherwise.
GetFormatStringAt retrieves a specified format item. It takes an integer (zero based) that specifies the
index of the format item to retrieve.
GetFormatStringAt(0). If the list size is 3 then the returned value is the prefix of the value in
the associated data cell; otherwise the returned value is the same as that returned from the
GetNumericFormatAt method.
GetFormatStringAt(1). Returns the separator character of the format for the value in the associated data
cell. Only available when the list size is greater than 1.
GetFormatStringAt(2). Returns the suffix of the value in the associated data cell. Only available when the
list size is greater than 2.
GetReferredFootnotesAt Method
Returns an SpssFootnotes object, which allows access to all the footnotes referred to by the specified
data cell.
• The footnotes array is a subset of the Footnotes object you can get from the pivot table. You can
manipulate the subset using the same properties and methods, but the index of a footnote in this array
is in no way related to the index of the same footnote when accessed from the pivot table.
Syntax
SpssFootnotes=SpssDataCells.GetReferredFootnotesAt(row,column)
Parameters
row. Row index
column. Column index
Example
This example gets the footnotes associated with the cell in the first row and first column of the data cell
array and sets the text color and text style of the first footnote (index value 0) to red and bold respectively.
It assumes that PivotTable is an SpssPivotTable object.
DataCells = PivotTable.DataCellArray()
Footnotes = DataCells.GetReferredFootnotesAt(0,0)
Footnotes.SetTextStyleAt(0,SpssClient.SpssTextStyleTypes.SpssTSBold)
Footnotes.SetTextColorAt(0,255)
GetRightMarginAt Method
Returns the right margin of the specified data cell. The unit is the point (1/72 inch).
Syntax
SpssDataCells.GetRightMarginAt(row,column)
Parameters
row. Row index
column. Column index
GetSigMarkersAt method
Returns the significance indicators, if any, for the specified data cell. Significance indicators are created
for custom tables (CTABLES) when pairwise comparisons of column proportions or column means are
calculated. The GetSigMarkersAt method returns significance indicators only when the indicators are
merged into the main table.
SpssDataCells.GetSigMarkersAt(row,column)
Parameters
Row
Row index.
Column
Column index.
GetTextColorAt Method
Returns the color of the text in the specified data cell.
Syntax
SpssDataCells.GetTextColorAt(row,column)
Parameters
row. Row index
column. Column index
Returns
The color is returned as an integer. See the topic Appendix B, “Setting Color Values ,” on page 231 for
more information.
GetTextFontAt Method
Returns the font of the text in the specified data cell, as a string.
Syntax
SpssDataCells.GetTextFontAt(row,column)
Parameters
row. Row index
column. Column index
GetTextHiddenAt Method
Returns the hidden effect of the text in the specified data cell. The result is Boolean.
Syntax
SpssDataCells.GetTextHiddenAt(row,column)
Parameters
row. Row index
column. Column index
Returns
GetTextSizeAt Method
Returns the font size of the text in the specified data cell.
Syntax
SpssDataCells.GetTextSizeAt(row,column)
Parameters
row. Row index
column. Column index
GetTextStyleAt Method
Returns the bold or italic style of the text in the specified data cell.
Syntax
SpssDataCells.GetTextStyleAt(row,column)
Parameters
row. Row index
column. Column index
Returns
GetTextUnderlinedAt Method
Returns the underlined effect of the text in the specified data cell. The result is Boolean.
Syntax
SpssDataCells.GetTextUnderlinedAt(row,column)
Parameters
row. Row index
column. Column index
Returns
True. Underlined
False. Not underlined
GetTopMarginAt Method
Returns the top margin of the specified data cell. The unit is the point (1/72 inch).
Syntax
GetVAlignAt Method
Returns the vertical alignment of the specified data cell.
Syntax
SpssDataCells.GetVAlignAt(row,column)
Parameters
row. Row index
column. Column index
Returns
GetUnformattedValueAt Method
Returns the unformatted value of the specified data cell, as a unicode string. This allows you to obtain all
available digits for a cell that contains a numeric value. In addition, any footnote markers associated with
the cell are removed in the returned value. To obtain the value of the cell, formatted in the same manner
as it appears in the pivot table, use the GetValueAt method.
Syntax
SpssDataCells.GetUnformattedValueAt(row,column)
Parameters
row. Row index
column. Column index
GetValueAt Method
Returns the value of the specified data cell, as a unicode string, and formatted in the same manner as it
appears in the pivot table. To obtain an unformatted version of the cell, use the GetUnformattedValueAt
method.
Syntax
SpssDataCells.GetValueAt(row,column,includeFootnotes)
Parameters
row. Row index
column. Column index
includeFootnotes. Optional Boolean specifying whether to include footnote markers in the returned value.
The default is True.
InsertNewFootnoteAt Method
Inserts a new footnote for the specified data cell.
Syntax
index=SpssDataCells.InsertNewFootnoteAt(row,column,string)
Parameters
row. Row index
column. Column index
string. New footnote text
Return Value
index. Integer (to be used to insert the footnote in other cells if it is a shared footnote)
Example
This example inserts a footnote for the cell in the first row and first column of the data cell array and
inserts a shared footnote for each cell whose value is identical to this one. It assumes that PivotTable
is an SpssPivotTable object.
DataCells = PivotTable.DataCellArray()
val = DataCells.GetUnformattedValueAt(0,0)
index = DataCells.InsertNewFootnoteAt(0,0,"My footnote")
for i in range(DataCells.GetNumRows()):
for j in range(DataCells.GetNumColumns()):
if DataCells.GetUnformattedValueAt(i,j) == val:
DataCells.InsertSharedFootnoteAt(i,j,index)
InsertSharedFootnoteAt Method
Inserts a shared footnote (a footnote that applies to multiple data cells and/or labels) for the specified
data cell.
Syntax
SpssDataCells.InsertSharedFootnoteAt(row,column,index)
Parameters
row. Row index.
column. Column index
index. The index (in the footnote array) of the desired footnote.
Note: When inserting a shared footnote along with a new footnote created with the
InsertNewFootnoteAt method, you can use the index value returned by the InsertNewFootnoteAt
method. See the topic “InsertNewFootnoteAt Method ” on page 175 for more information.
ReSizeColumn Method
Resets the width of the current column.
SelectCellAt Method
Selects the specified data cell, in addition to previously selected elements.
Syntax
SpssDataCells.SelectCellAt(row,column)
Parameters
row. Row index
column. Column index
SelectReferredFootnotesAt Method
Selects all the footnotes referenced by the specified data cell, in addition to previously selected elements.
Syntax
SpssDataCells.SelectReferredFootnotesAt(row,column)
Parameters
row. Row index
column. Column index
Note: This method is not available for legacy tables. To modify footnotes associated with a particular
data cell in a legacy table, use the GetReferredFootnotesAt method to get an SpssFootnotes object
containing the footnotes. You can then use the methods of the SpssFootnotes object to make the
desired modifications.
SetBackgroundColorAt Method
Sets the background color of the specified data cell.
Syntax
SpssDataCells.SetBackgroundColorAt(row,column,color)
Parameters
row. Row index
column. Column index
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetBottomMarginAt Method
Sets the bottom margin of the specified data cell.
Syntax
SpssDataCells.SetBottomMarginAt(row,column,margin)
Parameters
SetForegroundColorAt Method
This method is deprecated in release 17.0. Use the SetTextColorAt method instead.
SetHAlignAt Method
Sets the horizontal alignment of the specified data cell.
Syntax
SpssDataCells.SetHAlignAt(row,column,alignment)
Parameters
row. Row index
column. Column index
SetHDecDigitsAt Method
Sets the number of decimal digits for the specified data cell.
Syntax
SpssDataCells.SetHDecDigitsAt(row,column,number)
Parameters
row. Row index
column. Column index
number. Number of decimal digits
SetLeftMarginAt Method
Sets the left margin of the specified data cell.
Syntax
SpssDataCells.SetLeftMarginAt(row,column,margin)
Parameters
row. Row index
column. Column index
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
Parameters
row
Row index.
column
Column index.
format
The string description of the format.
Note: When using custom currencies, use CCA through CCE for the format parameter instead of the
format strings in the CellFormat panel.
For a listing of the format types, see Appendix D, “String Description of Numeric Formats ,” on page 235.
SetNumericFormatAtWithDecimal method
Sets the display format for the numeric value in the current cell.
SpssDataCells.SetNumericFormatAtWithDecimal(row,column,format,decimal)
Parameters
row. Row index
column. Column index
format. The string description of the format.
decimal. Number of decimal places. The default is 0.
For a listing of the format types, see Appendix D, “String Description of Numeric Formats ,” on page 235.
SetRightMarginAt Method
Sets the right margin of the specified data cell.
Syntax
SpssDataCells.SetRightMarginAt(row,column,margin)
Parameters
row. Row index
column. Column index
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetTextColorAt Method
Sets the color of the text in the specified data cell.
Syntax
SpssDataCells.SetTextColorAt(row,column,color)
Parameters
row. Row index
column. Column index
color. Integer representation of the color
SetTextFontAt Method
Sets the font of the text in the specified data cell.
Syntax
SpssDataCells.SetTextFontAt(row,column,fontname)
Parameters
row. Row index
column. Column index
fontname. Name of the font family, as a string. Available fonts are accessed from Format>Cell Properties
in the pivot table editor.
SetTextHiddenAt Method
Sets the hidden effect of the text in the specified data cell.
Syntax
SpssDataCells.SetTextHiddenAt(row,column,boolean)
Parameters
row. Row index
column. Column index
boolean. True for hidden, False for not hidden
SetTextSizeAt Method
Sets the font size of the text in the specified data cell.
Syntax
SpssDataCells.SetTextSizeAt(row,column,size)
Parameters
row. Row index
column. Column index
size. Size in points (integer)
SetTextStyleAt Method
Sets the bold or italic style of the text in the specified data cell.
Syntax
SpssDataCells.SetTextStyleAt(row,column,style)
Parameters
row. Row index
column. Column index
SetTextUnderlinedAt Method
Sets the underlined effect of the text in the specified data cell.
Syntax
SpssDataCells.SetTextUnderlinedAt(row,column,boolean)
Parameters
row. Row index
column. Column index
boolean. True for underlined, False for not underlined
SetTopMarginAt Method
Sets the top margin of the specified data cell.
Syntax
SpssDataCells.SetTopMarginAt(row,column,margin)
Parameters
row. Row index
column. Column index
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetVAlignAt Method
Sets the vertical alignment of the specified data cell.
Syntax
SpssDataCells.SetVAlignAt(row,column,alignment)
Parameters
row. Row index
column. Column index
SetValueAt Method
Sets the value of the specified data cell.
ShowFootnotesAt Method
Displays all the footnotes referenced by the specified data cell.
Syntax
SpssDataCells.ShowFootnotesAt(row,column)
Parameters
row. Row index
column. Column index
SpssDimension Class
The SpssDimension class provides access to a pivot table's dimensions. A pivot table can have
three types of dimensions: column dimensions, row dimensions, and layer dimensions. Using an
SpssDimension object you can obtain the name of a dimension, change the current category, or pivot
the dimension.
Table Dimensions
The following is an illustration of the three types of dimension in a pivot table. To see the pivot table with
all its labels (as shown in the figure), double-click it and select View>Show All from the menus in the pivot
table editor.
To display the pivot trays (if they are not on the screen), select Pivot >Pivoting Trays from the menus.
Getting an SpssDimension Object
You get an SpssDimension object from the GetColumnDimension, GetLayerDimension, or
GetRowDimension method of an SpssPivotMgr object. The SpssPivotMgr object is obtained from
the SpssPivotTable object. For example, the following gets an SpssDimension object for the row
dimension with index 1:
SpssPivotMgr = SpssPivotTable.PivotManager()
SpssDimension = SpssPivotMgr.GetRowDimension(1)
Example
PivotManager = PivotTable.PivotManager()
# Search for the row dimension named "Statistics" and pivot it to
# the first column dimension.
for i in range(PivotManager.GetNumRowDimensions()):
RowDim = PivotManager.GetRowDimension(i)
if RowDim.GetDimensionName() == "Statistics":
RowDim.MoveToColumn(0)
break
GetCategoryValueAt Method
Returns the label associated with the current category.
Syntax
SpssDimension.GetCategoryValueAt(index)
Parameters
index. Category index within the column or row dimension
GetCurrentCategory Method
Returns the index for the current category.
Syntax
SpssDimension.GetCurrentCategory()
GetDimensionName Method
Returns the dimension name.
Syntax
SpssDimension.GetDimensionName()
GetFullDimensionLabel Method
Returns the value of the label for the dimension, which is a concatenation of the dimension name, all the
group labels (if any), and the label for the current category.
Syntax
SpssDimension.GetFullDimensionLabel()
GetNumCategories Method
Returns the number of categories in the dimension.
Syntax
SpssDimension.GetNumCategories()
HideLabel Method
Hides the dimension label.
Syntax
SpssDimension.HideLabel()
MoveToColumn Method
Pivots the dimension to the column, placing it before the specified column dimension.
Syntax
MoveToLayer Method
Pivots the dimension to the layer, placing it before the specified layer dimension.
Syntax
SpssDimension.MoveToLayer(index)
Parameters
index. Layer dimension index
MoveToRow Method
Pivots the dimension to the row, placing it before the specified row dimension.
Syntax
SpssDimension.MoveToRow(index)
Parameters
index. Row dimension index
SetCurrentCategory Method
Sets the specified category as current.
Syntax
SpssDimension.SetCurrentCategory(index)
Parameters
index. Category index
SetDimensionName Method
Sets the dimension name.
Syntax
SpssDimension.SetDimensionName(name)
SpssFootnotes Class
The SpssFootnotes class provides access to all of the footnotes contained in a pivot table. The index of
a footnote does not correspond to the footnote marker but to the order of their references in the table.
The index is returned when you insert a new footnote.
You get an SpssFootnotes object from the FootnotesArray method of an SpssPivotTable object, as
in:
SpssFootnotes = SpssPivotTable.FootnotesArray()
Footnotes = PivotTable.FootnotesArray()
PivotTable.ClearSelection()
for i in range(Footnotes.GetCount()):
Footnotes.SelectCellAt(i)
PivotTable.SetBackgroundColor(65535)
ChangeMarkerToRegular Method
Changes the marker of the current footnote to the regular marker. The marker is either alphabetic
or numeric. The footnote marker type is set from the SetFootnoteMarkers method in the
SpssPivotTable class.
Syntax
SpssFootnotes.ChangeMarkerToRegular(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
ChangeMarkerToSpecial Method
Changes the marker of the current footnote to the special marker.
Syntax
SpssFootnotes.ChangeMarkerToSpecial(index,newmarker)
Parameters
index. Index of the footnote
newmarker. Special marker for the footnote. The value is a string with a maximum length of two
characters.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
GetBackgroundColorAt Method
Returns the background color of the specified footnote.
Syntax
SpssFootnotes.GetBackgroundColorAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
The color is returned as an integer. See the topic Appendix B, “Setting Color Values ,” on page 231 for
more information.
Note: This method is not available for legacy tables.
GetBottomMarginAt Method
Returns the bottom margin of the specified footnote. The unit is the point (1/72 inch).
GetCount Method
Returns the number of footnotes associated with the current pivot table.
Syntax
SpssFootnotes.GetCount()
GetForegroundColorAt Method
This method is deprecated in release 17.0 and obsolete for legacy tables in release 20 and higher. Use the
GetTextColorAt method instead.
GetHAlignAt Method
Returns the horizontal alignment of the specified footnote.
Syntax
SpssFootnotes.GetHAlignAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
GetLeftMarginAt Method
Returns the left margin for the specified footnote. The unit is the point (1/72 inch).
Syntax
SpssFootnotes.GetLeftMarginAt(index)
Parameters
GetRightMarginAt Method
Returns the right margin of the specified footnote. The unit is the point (1/72 inch).
Syntax
SpssFootnotes.GetRightMarginAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables.
GetTextColorAt Method
Returns the color of the text of the specified footnote.
Syntax
SpssFootnotes.GetTextColorAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
The color is returned as an integer. See the topic Appendix B, “Setting Color Values ,” on page 231 for
more information.
GetTextFontAt Method
Returns the font of the text in the specified footnote, as a string.
Syntax
SpssFootnotes.GetTextFontAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
GetTextHiddenAt Method
Returns the hidden effect of the specified footnote. The result is a Boolean.
Syntax
SpssFootnotes.GetTextHiddenAt(index)
Parameters
index. Index of the footnote
GetTextSizeAt Method
Returns the font size of the specified footnote.
Syntax
SpssFootnotes.GetTextSizeAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
GetTextStyleAt Method
Returns the bold or italic style of the text for specified footnote.
Syntax
SpssFootnotes.GetTextStyleAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
GetTextUnderlinedAt Method
Returns the underlined effect of the specified footnote. The result is a Boolean.
Syntax
SpssFootnotes.GetTextUnderlinedAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
True. Underlined
GetTopMarginAt Method
Returns the top margin of the specified footnote. The unit is the point (1/72 inch).
Syntax
SpssFootnotes.GetTopMarginAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables.
GetVAlignAt Method
Returns the vertical alignment of the specified footnote.
Syntax
SpssFootnotes.GetVAlignAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Returns
GetValueAt Method
Returns the value associated with the specified footnote, as a unicode string.
Syntax
SpssFootnotes.GetValueAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
RenumberFootnotes Method
Renumbers all footnotes.
Syntax
SelectCellAt Method
Selects the data or label cell associated with the specified footnote, in addition to previously selected
elements.
Syntax
SpssFootnotes.SelectCellAt(index)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetBackgroundColorAt Method
Sets the background color of the specified footnote.
Syntax
SpssFootnotes.SetBackgroundColorAt(index,color)
Parameters
index. Index of the footnote
color. Integer representation of the color
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
Note: This method is not available for legacy tables. You can set the background color of all footnotes
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetBackgroundColor method.
SetBottomMarginAt Method
Sets the bottom margin of the specified footnote.
Syntax
SpssFootnotes.SetBottomMarginAt(index,margin)
Parameters
index. Index of the footnote
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables. You can set the bottom margin of the footnote area
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetBottomMargin method.
SetForegroundColorAt Method
This method is deprecated in release 17.0 and obsolete for legacy tables in release 20 and higher. Use the
SetTextColorAt method instead.
Note: This method is not available for legacy tables. You can set the horizontal alignment of all footnotes
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetHAlign method.
SetLeftMarginAt Method
Sets the left margin for the specified footnote.
Syntax
SpssFootnotes.SetLeftMarginAt(index,margin)
Parameters
index. Index of the footnote.
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables. You can set the left margin of the footnote area
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetLeftMargin method.
SetRightMarginAt Method
Sets the right margin of specified footnote.
Syntax
SpssFootnotes.SetRightMarginAt(index,margin)
Parameters
index. Index of the footnote
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetTextColorAt Method
Sets the color of the text of the specified footnote.
Syntax
SpssFootnotes.SetTextColorAt(index,color)
Parameters
index. Index of the footnote
color. Integer representation of the color
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetTextFontAt Method
Sets the font of the text in the specified footnote.
Syntax
SpssFootnotes.SetTextFontAt(index,fontname)
Parameters
index. Index of the footnote
fontname. Name of the font family, as a string. Available fonts are accessed from Format>Cell Properties
in the pivot table editor.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetTextHiddenAt Method
Sets the hidden effect of the specified footnote.
Syntax
SpssFootnotes.SetTextHiddenAt(index,boolean)
Parameters
index. Index of the footnote
boolean. True for hidden, False for not hidden
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetTextSizeAt Method
Sets the font size of the specified footnote.
Syntax
SpssFootnotes.SetTextSizeAt(index,size)
Parameters
index. Index of the footnote
SetTextStyleAt Method
Sets the bold or italic style of the text for the specified footnote.
Syntax
SpssFootnotes.SetTextStyleAt(index,style)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetTextUnderlinedAt Method
Sets the underlined effect of the specified footnote.
Syntax
SpssFootnotes.SetTextUnderlinedAt(index,boolean)
Parameters
index. Index of the footnote
boolean. True for underlined, False for not underlined
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables. You can set the underlined effect of all footnotes
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetTextUnderlined method.
SetTopMarginAt Method
Sets the top margin of the specified footnote.
Syntax
SpssFootnotes.SetTopMarginAt(index,margin)
Parameters
index. Index of the footnote
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SetVAlignAt Method
Sets the vertical alignment of the specified footnote.
Syntax
SpssFootnotes.SetVAlignAt(index,alignment)
Parameters
index. Index of the footnote
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
Note: This method is not available for legacy tables. You can set the vertical alignment of all footnotes
in a legacy table by selecting all footnotes with the SpssPivotTable.SelectAllFootnotes method and then
calling the SpssPivotTable.SetVAlign method.
SetValueAt Method
Sets the value associated with the specified footnote.
Syntax
SpssFootnotes.SetValueAt(index,value)
Parameters
index. Index of the footnote
value. String
The index of a footnote does not correspond to the footnote marker but to the order of their references in
the table.
SpssLabels Class
The SpssLabels class provides access to the row labels and column labels contained in a pivot table.
You need to use this object to format column or row labels (for example, making all "Total" labels bold)
or to change labels (for example, changing the "Column %", "Row %" or "Total %" label). Generally
speaking, you need to get the specified column or row label in order to locate specific statistics in an
SpssDataCells object.
The row and column labels are represented as 2-dimensional arrays, referred to as the row labels array
and column labels array. The arrays contain all row and column labels for the pivot table, including
hidden labels. The row labels array has the same number of rows as the data cells array and the column
labels array has the same number of columns as the data cells array. Row indexes for the row labels and
column indexes for the column labels respectively correspond to the row and column indexes for the data
cells.
Column Labels Array
Each column dimension in the column labels array is represented by a set of levels. The first level is the
dimension label, the last level contains the category labels, and all the levels in between (if any) contain
group labels.
Row Labels Array
The following diagrams illustrate how the row labels array is indexed. Note that where you see only one
label (such as the dimension name Statistics) in the pivot table, the label can be accessed in all cells
corresponding to the categories under it. In the case of Statistics, you can access it using (0,0), (1,0),
(2,0), (3,0), (4,0) and (5,0) and any change you make to one cell is reflected in all these cells.
Each row dimension in the row labels array is represented by a set of levels. The first level is the
dimension label, the last level contains the category labels, and all the levels in between (if any) contain
group labels.
Notes
• To see all row and column labels in a pivot table, double-click on it and select View>Show All in the
pivot table editor.
• Blank cells in the row label or column label arrays indicate that some categories (or subgroups) are not
grouped.
Getting an SpssLabels Object
You get an SpssLabels object from the RowLabelArray or ColumnLabelArray method of an
SpssPivotTable object, as in:
SpssLabels = SpssPivotTable.RowLabelArray()
Examples
RowLabels = PivotTable.RowLabelArray()
for i in range(RowLabels.GetNumRows()):
for j in range(1,RowLabels.GetNumColumns()):
RowLabels.SetTextStyleAt(i,j,
SpssClient.SpssTextStyleTypes.SpssTSBold)
This example assumes that PivotTable is an SpssPivotTable object, selects all column labels and
bolds the text.
ColLabels = PivotTable.ColumnLabelArray()
for i in range(1,ColLabels.GetNumRows()):
for j in range(ColLabels.GetNumColumns()):
ColLabels.SetTextStyleAt(i,j,
SpssClient.SpssTextStyleTypes.SpssTSBold)
BreakHere Method
Sets the break location for printing large pivot tables. The break occurs after a specified row or column
label and only applies to the innermost row or column labels. Breaks are specified for a particular row or
column label and do not apply to any repeated versions of the specified label.
Syntax
SpssLabels.BreakHere(index)
Parameters
index. For row labels, the index of the row (to break on) in the row labels array. For column labels, the
index of the column (to break on) in the column labels array.
GetBackgroundColorAt Method
Returns the background color of the specified row/column label.
Syntax
SpssLabels.GetBackgroundColorAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Returns
The color is returned as an integer. See the topic Appendix B, “Setting Color Values ,” on page 231 for
more information.
GetBottomMarginAt Method
Returns the bottom margin of the specified row/column label. The unit is the point (1/72 inch).
Syntax
SpssLabels.GetBottomMarginAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetColumnLabelWidthAt Method
Returns the width of the column labels for the level containing the current label. The unit is the point
(1/72 inch).
GetForegroundColorAt Method
This method is deprecated in release 17.0. Use the GetTextColorAt method instead.
GetHAlignAt Method
Returns the horizontal alignment of the specified row/column label.
Syntax
SpssLabels.GetHAlignAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Returns
GetLeftMarginAt Method
Returns the left margin of the specified row/column label. The unit is the point (1/72 inch).
Syntax
SpssLabels.GetLeftMarginAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetNumColumns Method
Returns the number of columns in the row/column labels object.
Syntax
SpssLabels.GetNumColumns()
GetNumRows Method
Returns the number of rows in the row/column labels object.
GetReferredFootnotesAt Method
Returns an SpssFootnotes object, which allows access to all the footnotes referred to by the specified
label cell.
• The returned footnotes array is a subset of the array returned by the FootnotesArray method of
the SpssPivotTable class. You can manipulate the subset using the same properties and methods,
but the index of a footnote in this array is in no way related to the index of the same footnote when
accessed from the pivot table.
Syntax
SpssFootnotes=SpssLabels.GetReferredFootnotesAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Example
This example gets the footnotes for the column label with row index 1 and column index 1 (in the column
label array) and sets the text color and text style of the first footnote (index value 0) to red and bold
respectively. It assumes that PivotTable is an SpssPivotTable object.
Labels = PivotTable.ColumnLabelArray()
Footnotes = Labels.GetReferredFootnotesAt(1,1)
Footnotes.SetTextStyleAt(0,SpssClient.SpssTextStyleTypes.SpssTSBold)
Footnotes.SetTextColorAt(0,255)
GetRightMarginAt Method
Returns the right margin of the specified row/column label. The unit is the point (1/72 inch).
Syntax
SpssLabels.GetRightMarginAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetRowLabelWidthAt Method
Returns the width of the row labels for the level containing the current label. The unit is the point (1/72
inch).
Syntax
SpssLabels.GetRowLabelWidthAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetTextColorAt Method
Returns the color of the text in the specified row/column label.
Syntax
GetTextFontAt Method
Returns the font of the text in the specified row/column label, as a string.
Syntax
SpssLabels.GetTextFontAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetTextHiddenAt Method
Returns the hidden effect of the text for the specified row/column label. The result is a Boolean.
Syntax
SpssLabels.GetTextHiddenAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Returns
True. Hidden
False. Not hidden
GetTextSizeAt Method
Returns the font size of the text for the specified row/column label.
Syntax
SpssLabels.GetTextSizeAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetTextStyleAt Method
Returns the bold or italic style of the text in the specified row/column label.
Syntax
SpssLabels.GetTextStyleAt(row,column)
Parameters
row. Row index in the label array
GetTextUnderlinedAt Method
Returns the underlined effect of the text in the specified row/column label. The result is a Boolean.
Syntax
SpssLabels.GetTextUnderlinedAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Returns
True. Underlined
False. Not underlined
GetTextWidthAt Method
Returns the width of the text in the indexed row/column label, as if the text were unwrapped. The unit is
the point (1/72 inch).
Syntax
SpssLabels.GetTextWidthAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetTopMarginAt Method
Returns the top margin of the specified row/column label. The unit is the point (1/72 inch).
Syntax
SpssLabels.GetTopMarginAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
GetVAlignAt Method
Returns the vertical alignment of the specified row/column label.
Syntax
GetValueAt Method
Returns the value of the specified row/column label, as a unicode string.
Syntax
SpssLabels.GetValueAt(row,column,includeFootnotes)
Parameters
row. Row index in the label array
column. Column index in the label array
includeFootnotes. Optional Boolean specifying whether to include footnote markers in the returned value.
The default is True.
HideAllLabelsInDimensionAt Method
Hides all labels in the same dimension as the specified label.
Syntax
SpssLabels.HideAllLabelsInDimensionAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
HideFootnotesAt Method
Hides all footnotes referenced by the specified row/column label.
Syntax
SpssLabels.HideFootnotesAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
HideLabelsInDimensionAt Method
Hides all instances of the specified label within the dimension containing the label.
Syntax
HideLabelsWithDataAt Method
Hides all instances of the specified label and all data associated with those instances. Only applies to the
innermost labels.
Syntax
SpssLabels.HideLabelsWithDataAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
InsertBefore Method
Moves the selected column(s) or rows before a specified column or row. (The data are moved together
with the labels.)
• The selected and specified labels must be in the same dimension and must be either category or group
labels. (That is, they cannot be dimension names.)
• If no labels in the same dimension are selected, the method is ignored.
Syntax
SpssLabels.InsertBefore(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
InsertNewAfter Method
Inserts a new row or column, after the specified row or column, in the pivot table. To insert a new row,
use this method with the row labels array. To insert a new column, use this method with the column
labels array. The particular row or column is specified by providing the indexes of its associated label in
the labels array. For example, to insert a column after the column whose label is "Mean", you provide the
indexes of the label "Mean" in the column labels array.
• A plus sign "+" is inserted in the first cell of the new row or column to prevent the row or column from
being automatically hidden because it is empty.
• In a table with nested or layered dimensions, a column or row is inserted at every corresponding
dimension level.
Note: This method is not supported for legacy tables.
Syntax
SpssLabels.InsertNewAfter(row,column,label=None)
Parameters
row. Row index in the label array
column. Column index in the label array
label. An optional label for the new row or column. If omitted, a plus sign "+" is used for the label.
InsertNewFootnoteAt Method
Inserts a new footnote for the specified row/column label.
Syntax
index=SpssLabels.InsertNewFootnoteAt(row,column,string)
Parameters
row. Row index in the label array
column. Column index in the label array
string. New footnote text
Return Value
index. Integer (to be used to insert the footnote in other cells if it is a shared footnote)
Example
This example inserts a footnote for the column label with row index 1 and column index 1 (in the column
label array), and it also inserts a shared footnote for the column label with row index 1 and column index
2. It assumes that PivotTable is an SpssPivotTable object.
Labels = PivotTable.ColumnLabelArray()
index = Labels.InsertNewFootnoteAt(1,1,"My footnote")
Labels.InsertSharedFootnoteAt(1,2,index)
InsertSharedFootnoteAt Method
Inserts a shared footnote (a footnote that applies to multiple labels and/or data cells) for the specified
row/column label.
Syntax
SpssLabels.InsertSharedFootnoteAt(row,column,index)
Parameters
row. Row index in the label array.
KeepTogether Method
Prevents a page break from occurring within the specified range when printing large pivot tables.
Syntax
SpssLabels.KeepTogether(from,to)
Parameters
from. For row labels, the index of the starting row in the row labels array. For column labels, the index of
the starting column in the column labels array.
to. For row labels, the index of the ending row in the row labels array. For column labels, the index of the
ending column in the column labels array.
RemoveBreakHere Method
Clears a previously set break location.
Syntax
SpssLabels.RemoveBreakHere(index)
Parameters
index. For row labels, the index of the row (in the row labels array) for which the break was set. For
column labels, the index of the column (in the column labels array) for which the break was set.
RemoveKeepTogether Method
Negates the effects of a previous call to KeepTogether.
Syntax
SpssLabels.RemoveKeepTogether(from,to)
Parameters
from. For row labels, the index of the starting row in the row labels array. For column labels, the index of
the starting column in the column labels array.
to. For row labels, the index of the ending row in the row labels array. For column labels, the index of the
ending column in the column labels array.
SelectDataUnderLabelAt Method
Selects the data under the indexed label (but not the label), in addition to whatever has been selected
previously.
Syntax
SpssLabels.SelectDataUnderLabelAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
SelectLabelDataAt Method
Selects the indexed label and all corresponding data in the category, in addition to whatever has been
selected previously.
Syntax
SpssLabels.SelectLabelDataAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
SelectReferredFootnotesAt Method
Selects all the footnotes referenced by the specified label cell, in addition to previously selected
elements.
Syntax
SpssLabels.SelectReferredFootnotesAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Note: This method is not available for legacy tables. To modify footnotes associated with a particular
label in a legacy table, use the GetReferredFootnotesAt method to get an SpssFootnotes object
containing the footnotes. You can then use the methods of the SpssFootnotes object to make the
desired modifications.
SetBackgroundColorAt Method
Sets the background color of the specified row/column label.
Syntax
SpssLabels.SetBackgroundColorAt(row,column,color)
Parameters
row. Row index in the label array
column. Column index in the label array
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetBottomMarginAt Method
Sets the bottom margin of the specified row/column label.
SetColumnLabelWidthAt Method
Sets the width of the specified column label. This property will also set the widths of all column labels
and data cells that are in the same column of the table as the specified label. To set column widths
independently, use the ReSizeColumn method in the SpssDataCells class.
Syntax
SpssLabels.SetColumnLabelWidthAt(row,column,width)
Parameters
row. Row index in the label array
column. Column index in the label array
width. An integer. The unit is the point (1/72 inch).
SetForegroundColorAt Method
This method is deprecated in release 17.0. Use the SetTextColorAt method instead.
SetHAlignAt Method
Sets the horizontal alignment of the specified row/column label.
Syntax
SpssLabels.SetHAlignAt(row,column,alignment)
Parameters
row. Row index in the label array
column. Column index in the label array
SetLeftMarginAt Method
Sets the left margin of the specified row/column label.
Syntax
SpssLabels.SetLeftMarginAt(row,column,margin)
SetRightMarginAt Method
Sets the right margin of the specified row/column label.
Syntax
SpssLabels.SetRightMarginAt(row,column,margin)
Parameters
row. Row index in the label array
column. Column index in the label array
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetRowLabelWidthAt Method
Sets the width of the specified row label. This method will also set the widths of all row labels that are in
the same column of the row label array as the specified label.
Syntax
SpssLabels.SetRowLabelWidthAt(row,column,width)
Parameters
row. Row index in the label array
column. Column index in the label array
width. An integer. The unit is the point (1/72 inch).
SetTextColorAt Method
Sets the color of the text in the specified row/column label.
Syntax
SpssLabels.SetTextColorAt(row,column,color)
Parameters
row. Row index in the label array
column. Column index in the label array
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetTextFontAt Method
Sets the font of the text in the specified row/column label.
Syntax
SpssLabels.SetTextFontAt(row,column,fontname)
Parameters
row. Row index in the label array
column. Column index in the label array
SetTextHiddenAt Method
Sets the hidden effect of the text for the specified row/column label.
Syntax
SpssLabels.SetTextHiddenAt(row,column,boolean)
Parameters
row. Row index in the label array
column. Column index in the label array
boolean. True for hidden, False for not hidden. True hides the cell associated with the label.
SetTextSizeAt Method
Sets the font size of the text for the specified row/column label.
Syntax
SpssLabels.SetTextSizeAt(row,column,size)
Parameters
row. Row index in the label array
column. Column index in the label array
size. Size in points (integer)
SetTextStyleAt Method
Sets the bold or italic style of the text in the specified row/column label.
Syntax
SpssLabels.SetTextStyleAt(row,column,style)
Parameters
row. Row index in the label array
column. Column index in the label array
SetTextUnderlinedAt Method
Sets the underlined effect of the text in the specified row/column label.
Syntax
SpssLabels.SetTextUnderlinedAt(row,column,boolean)
Parameters
SetTopMarginAt Method
Sets the top margin of the specified row/column label.
Syntax
SpssLabels.SetTopMarginAt(row,column,margin)
Parameters
row. Row index in the label array
column. Column index in the label array
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetVAlignAt Method
Sets the vertical alignment of the specified row/column label.
Syntax
SpssLabels.SetVAlignAt(row,column,alignment)
Parameters
row. Row index in the label array
column. Column index in the label array
SetValueAt Method
Sets the value of the specified row/column label.
Syntax
SpssLabels.SetValueAt(row,column,value)
Parameters
row. Row index in the label array
column. Column index in the label array
value. String
ShowAllLabelsAndDataInDimensionAt Method
Shows all labels and data in the dimension that contains the specified label.
Syntax
SpssLabels.ShowAllLabelsAndDataInDimensionAt(row,column)
Parameters
ShowAllLabelsInDimensionAt Method
Shows all labels in the dimension that contains the specified label.
Syntax
SpssLabels.ShowAllLabelsInDimensionAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
ShowFootnotesAt Method
Displays all the footnotes referenced by the specified row/column label.
Syntax
SpssLabels.ShowFootnotesAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
ShowHiddenDimensionLabelAt Method
Shows the hidden dimension label for the dimension that contains the specified label.
Syntax
SpssLabels.ShowHiddenDimensionLabelAt(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
Swap Method
Swaps the selected column(s) or rows with a specified column or row. The data are swapped together
with the labels.
• The selected and specified labels must be in the same dimension and must be either category or group
labels. (That is, they cannot be dimension names.)
• If no labels in the same dimenison are selected, the method is ignored.
Syntax
SpssLabels.Swap(row,column)
Parameters
row. Row index in the label array
column. Column index in the label array
SpssLayerLabels Class
The SpssLayerLabels class provides access to the layer labels contained in a pivot table. You need to
use this object to format or change layer labels.
Each layer dimension in the layer labels array is represented by a set of levels. The first level is the
dimension name, the last level contains the current category label, and all the levels in between (if any)
contain group labels. Blank cells in the layer labels array indicate that there are different numbers of
levels in different layer dimensions.
Getting an SpssLayerLabels Object
You get an SpssLayerLabels object from the LayerLabelArray method of an SpssPivotTable object,
as in:
SpssLayerLabels = SpssPivotTable.LayerLabelArray()
Example
This example assumes that PivotTable is an SpssPivotTable object and sets the background color of
the label for the first layer dimension to yellow.
LayerLabels = PivotTable.LayerLabelArray()
LayerLabels.SetBackgroundColorAt(0,65535)
GetBackgroundColorAt Method
Returns the background color of the specified layer label.
Syntax
SpssLayerLabels.GetBackgroundColorAt(index)
Parameters
index. Index of the layer dimension
GetBottomMarginAt Method
Returns the bottom margin of the specified layer label. The unit is the point (1/72 inch).
Syntax
SpssLayerLabels.GetBottomMarginAt(index)
Parameters
index. Index of the layer dimension
GetForegroundColorAt Method
This method is deprecated in release 17.0. Use the GetTextColorAt method instead.
GetHAlignAt Method
Returns the horizontal alignment of the specified layer label.
Syntax
SpssLayerLabels.GetHAlignAt(index)
Parameters
index. Index of the layer dimension
Returns
GetLeftMarginAt Method
Returns the left margin of the label for the specified layer dimension. The unit is the point (1/72 inch).
Syntax
SpssLayerLabels.GetLeftMarginAt(index)
Parameters
index. Index of the layer dimension
GetNumDimensions Method
Returns the number of labels in the Layers (equal to the number of dimensions in the layers).
Syntax
SpssLayerLabels.GetNumDimensions()
GetRightMarginAt Method
Returns the right margin of the label for the specified layer dimension. The unit is the point (1/72 inch).
Syntax
SpssLayerLabels.GetRightMarginAt(index)
Parameters
index. Index of the layer dimension
GetTextColorAt Method
Returns the color of the text in the label of the specified layer dimension.
Syntax
SpssLayerLabels.GetTextColorAt(index)
Parameters
index. Index of the layer dimension
Returns
The color is returned as an integer. See the topic Appendix B, “Setting Color Values ,” on page 231 for
more information.
GetTextFontAt Method
Returns the font of the text in the specified layer dimension, as a string.
Syntax
SpssLayerLabels.GetTextFontAt(index)
Parameters
index. Index of the layer dimension
GetTextHiddenAt Method
Returns the hidden effect of the specified layer dimension. The result is a Boolean.
Syntax
SpssLayerLabels.GetTextHiddenAt(index)
Parameters
index. Index of the layer dimension
Returns
True. Hidden
False. Not hidden
GetTextStyleAt Method
Returns the bold or italic style of the text for the specified layer dimension.
Syntax
SpssLayerLabels.GetTextStyleAt(index)
Parameters
index. Index of the layer dimension
Returns
GetTextUnderlinedAt Method
Returns the underlined effect of the specified layer dimension. The result is a Boolean.
Syntax
SpssLayerLabels.GetTextUnderlinedAt(index)
Parameters
index. Index of the layer dimension
Returns
True. Underlined
False. Not underlined
GetTopMarginAt Method
Returns the top margin of the label for the specified layer dimension. The unit is the point (1/72 inch).
Syntax
SpssLayerLabels.GetTopMarginAt(index)
Parameters
index. Index of the layer dimension
GetVAlignAt Method
Returns the vertical alignment of the label for the specified layer dimension.
GetValueAt Method
Returns the value associated with the specified layer and column from the layer labels array, as a unicode
string.
Syntax
SpssLayerLabels.GetValueAt(index,column)
Parameters
index. Index of the layer dimension
column. Column index of the cell in the layer labels array
HideFootnotesAt Method
Hides all footnotes referenced by the specified layer label.
Syntax
SpssLayerLabels.HideFootnotesAt(index)
Parameters
index. Index of the layer dimension
InsertNewFootnoteAt Method
Inserts a new footnote for the specified layer dimension.
Syntax
index=SpssLayerLabels.InsertNewFootnoteAt(index,string)
Parameters
index. Index of the layer dimension
string. New footnote text
Return Value
index. Integer (to be used to insert the footnote in other cells if it is a shared footnote)
Example
Labels = PivotTable.LayerLabelArray()
index = Labels.InsertNewFootnoteAt(0,"My footnote")
Labels.InsertSharedFootnoteAt(1,index)
InsertSharedFootnoteAt Method
Inserts a shared footnote (a footnote that applies to multiple labels and/or data cells) for the specified
layer dimension.
Syntax
SpssLayerLabels.InsertSharedFootnoteAt(dim,index)
Parameters
dim. Index of the layer dimension
index. The index (in the footnote array) of the desired footnote.
Note: When inserting a shared footnote along with a new footnote created with the
InsertNewFootnoteAt method, you can use the index value returned by the InsertNewFootnoteAt
method. See the topic “InsertNewFootnoteAt Method ” on page 215 for more information.
SelectLabelAt Method
Selects the specified label, in addition to previously selected elements.
Syntax
SpssLayerLabels.SelectLabelAt(index)
Parameters
index. Index of the layer dimension
SelectReferredFootnotesAt Method
Selects all the footnotes referenced by the current layer label, in addition to previously selected elements.
Syntax
SpssLayerLabels.SelectReferredFootnotesAt(index)
Parameters
index. Index of the layer dimension
Note: This method is not available for legacy tables.
SetBackgroundColorAt Method
Sets the background color of the specified layer label.
Syntax
SpssLayerLabels.SetBackgroundColorAt(index,color)
Parameters
index. Index of the layer dimension
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetForegroundColorAt Method
This method is deprecated in release 17.0. Use the SetTextColorAt method instead.
SetHAlignAt Method
Sets the horizontal alignment of the specified layer label.
Syntax
SpssLayerLabels.SetHAlignAt(index,alignment)
Parameters
index. Index of the layer dimension
SetLeftMarginAt Method
Sets the left margin of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetLeftMarginAt(index,margin)
Parameters
index. Index of the layer dimension
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetRightMarginAt Method
Sets the right margin of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetRightMarginAt(index,margin)
Parameters
index. Index of the layer dimension
SetTextColorAt Method
Sets the color of the text in the label of the specified layer dimension.
Syntax
SpssLayerLabels.SetTextColorAt(index,color)
Parameters
index. Index of the layer dimension
color. Integer representation of the color
For information on setting color values, see Appendix B, “Setting Color Values ,” on page 231.
SetTextFontAt Method
Sets the font of the text in the specified layer dimension.
Syntax
SpssLayerLabels.SetTextFontAt(index,fontname)
Parameters
index. Index of the layer dimension
fontname. Name of the font family, as a string. Available fonts are accessed from Format>Cell Properties
in the pivot table editor.
SetTextHiddenAt Method
Sets the hidden effect of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetTextHiddenAt(index,boolean)
Parameters
index. Index of the layer dimension
boolean. True for hidden, False for not hidden
SetTextSizeAt Method
Sets the font size of the label of the specified layer dimension.
Syntax
SpssLayerLabels.SetTextSizeAt(index,size)
Parameters
index. Index of the layer dimension
size. Size in points (integer)
SetTextStyleAt Method
Sets the bold or italic style of the text for the specified layer dimension.
Syntax
SpssLayerLabels.SetTextStyleAt(index,style)
Parameters
SetTextUnderlinedAt Method
Sets the underlined effect of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetTextUnderlinedAt(index,boolean)
Parameters
index. Index of the layer dimension
boolean. True for underlined, False for not underlined.
SetTopMarginAt Method
Sets the top margin of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetTopMarginAt(index,margin)
Parameters
index. Index of the layer dimension
margin. An integer. The unit is the point (1/72 inch). The maximum value is 36.
SetVAlignAt Method
Sets the vertical alignment of the label for the specified layer dimension.
Syntax
SpssLayerLabels.SetVAlignAt(index,alignment)
Parameters
index. Index of the layer dimension
ShowFootnotesAt Method
Displays all the footnotes referenced by the label of the specified layer dimension.
Syntax
SpssPivotMgr Class
The SpssPivotMgr class provides access to the row, column, and layer dimensions contained in a pivot
table. By pivoting row dimensions to column dimensions, or column dimensions to layer dimensions, you
can find the best way to present the results of the statistical analyses.
You get an SpssPivotMgr object from the PivotManager method of an SpssPivotTable object, as in:
SpssPivotMgr = SpssPivotTable.PivotManager()
For an example of using the SpssPivotMgr class, see “SpssDimension Class ” on page 181.
GetColumnDimension Method
Returns an SpssDimension object for the specified column dimension.
Syntax
SpssDimension=SpssPivotMgr.GetColumnDimension(index)
Parameters
index. Index of the column dimension, where the value 0 refers to the innermost column dimension.
GetLayerDimension Method
Returns an SpssDimension object for the specified layer dimension.
Syntax
SpssDimension=SpssPivotMgr.LayerDimension(index)
Parameters
index. Index of the layer dimension
GetNumColumnDimensions Method
Returns the number of column dimensions.
Syntax
SpssPivotMgr.GetNumColumnDimensions()
GetNumLayerDimensions Method
Returns the number of layer dimensions.
Syntax
SpssPivotMgr.GetNumLayerDimensions()
GetNumRowDimensions Method
Returns the number of row dimensions.
Syntax
SpssPivotMgr.GetNumRowDimensions()
MoveLayersToColumns Method
Moves all dimensions in layers to the outermost columns.
Syntax
SpssPivotMgr.MoveLayersToColumns()
MoveLayersToRows Method
Moves all dimensions in layers to the outermost rows.
Syntax
SpssPivotMgr.MoveLayersToRows()
TransposeRowsWithColumns Method
Moves all dimensions in the rows to the columns and moves all dimensions in the columns to the rows.
Syntax
SpssPivotMgr.TransposeRowsWithColumns()
import SpssClient
SpssClient.StartClient()
SpssServerConf = SpssClient.CreateNewServer("myservername",3016,"")
SpssServerConf.Connect("","myuserID","mypassword")
SpssClient.StopClient()
• The CreateNewServer method from the SpssClient class creates a new server configuration object
for a server with a specified name (or IP address) on a specified port. It returns an SpssServerConf
object.
• The Connect method of an SpssServerConf object establishes a connection to the server using the
specified domain, user ID, and password.
Example: Configuring a New Server and Saving the Configuration
import SpssClient
SpssClient.StartClient()
ServerConfList = SpssClient.GetConfiguredServers()
SpssServerConf = SpssClient.CreateNewServer("myservername",3016,"")
ServerConfList.Add(SpssServerConf)
SpssServerConf = ServerConfList.GetItemAt(ServerConfList.Size()-1)
SpssServerConf.SetUserId("myuserID")
SpssServerConf.SetPassword("mypassword")
SpssServerConf.SetUserDomain("mydomain")
import SpssClient
SpssClient.StartClient()
ServerConfList = SpssClient.GetConfiguredServers()
for i in range(ServerConfList.Size()):
server = ServerConfList.GetItemAt(i)
if server.GetServerName()=="myservername":
server.ConnectWithSavedPassword()
SpssClient.StopClient()
Connect Method
Attempts to connect to the associated instance of IBM SPSS Statistics Server using the provided domain,
user ID, and password. Any existing connection to an instance of IBM SPSS Statistics Server is terminated.
Note: This method is not available when called from a Python program in distributed mode (Python
programs make use of the interface exposed by the Python spss module).
Syntax
SpssServerConf.Connect(domain,userID,password)
Parameters
domain. A string specifying the domain of the user ID. Enter a blank string if the domain is not required.
userID. A string specifying the user ID.
password. A string specifying the password.
ConnectWithSavedPassword Method
Attempts to connect to the associated instance of IBM SPSS Statistics Server using the stored user
domain, user ID, and password.
Note: This method is not available when called from a Python program in distributed mode (Python
programs make use of the interface exposed by the Python spss module).
Syntax
SpssServerConf.ConnectWithSavedPassword()
GetDescription Method
Returns the description text for the associated server.
Syntax
SpssServerConf.GetDescription()
GetServerName Method
Returns the machine name or IP address for the associated instance of IBM SPSS Statistics Server.
Syntax
SpssServerConf.GetServerName()
GetServerPort Method
Returns the port number for the associated instance of IBM SPSS Statistics Server.
Syntax
SpssServerConf.GetServerPort()
GetUserDomain Method
Returns the domain for the current user ID.
Syntax
SpssServerConf.GetUserDomain()
GetUserId Method
Returns the user ID if it is saved as part of the associated server configuration.
Syntax
SpssServerConf.GetUserId()
GetUseSSL Method
Indicates if SSL (Secure Sockets Layer) is in use for the associated instance of IBM SPSS Statistics
Server. SSL is a commonly used protocol for managing the security of message transmission on the
Internet. The result is Boolean--True if SSL is in use, False otherwise.
Syntax
SpssServerConf.GetUseSSL()
IsEqualTo Method
Indicates if this server configuration object is the same object as a specified server configuration object.
The result is Boolean--True if the two objects are identical, False otherwise.
Syntax
SpssServerConf.IsEqualTo(serverConf)
Parameters
serverConf. An SpssServerConf object
IsLocalServer Method
Indicates whether the associated instance of IBM SPSS Statistics Server represents the local server. The
result is Boolean--True if this server is the local server, False otherwise.
Syntax
SpssServerConf.IsLocalServer()
IsPasswordSaved Method
Indicates whether the password is saved in the server configuration. The result is Boolean--True if the
password is saved, False otherwise.
Syntax
SpssServerConf.IsPasswordSaved()
SetDefaultServer Method
Specifies whether the associated instance of IBM SPSS Statistics Server is set as the default server.
Syntax
SpssServerConf.SetDefaultServer(defaultServerFlag)
Parameters
defaultServerFlag. True to set as the default server, False otherwise.
SetDescription Method
Sets the description text for the associated server configuration.
Syntax
SpssServerConf.SetDescription(description)
SetPassword Method
Sets the password to be used by this server configuration.
Syntax
SpssServerConf.SetPassword(password)
SetServerName Method
Sets the machine name or IP address for the associated instance of IBM SPSS Statistics Server.
Syntax
SpssServerConf.SetServerName(serverName)
SetServerPort Method
Sets the port number for the associated instance of IBM SPSS Statistics Server.
Syntax
SpssServerConf.SetServerPort(port)
Parameters
port. An integer
SetUserDomain Method
Sets the domain for the current user ID.
Syntax
SpssServerConf.SetUserDomain(domain)
domain. A string
SetUserId Method
Sets the user ID for the associated server configuration.
Syntax
SpssServerConf.SetUserId(userId)
SetUseSSL Method
Specifies the setting for using SSL (Secure Sockets Layer) with the associated instance of IBM SPSS
Statistics Server. SSL is a commonly used protocol for managing the security of message transmission on
the Internet.
Syntax
SpssServerConf.SetUseSSL(useSSL)
Parameters
useSSL. True to use SSL, False otherwise.
For an example that uses the SpssServerConfList class, see the example for the SpssServerConf
class.
Add Method
Adds a server configuration to the list of available servers.
Syntax
SpssServerConfList.Add(serverConf)
Parameters
serverConf. An SpssServerConf object.
Server configuration objects are created with the CreateNewServer method in the SpssClient class.
Clear Method
Clears the list of server configurations, including the local computer.
Syntax
SpssServerConfList.Clear()
Contains Method
Indicates if the specified server configuration is a member of the list of available server configurations.
The result is a Boolean--True if the specified server configuration object is equal to a member of the list of
available server configuration objects, False otherwise.
Syntax
SpssServerConfList.Contains(serverConf)
Parameters
serverConf. An SpssServerConf object
GetItemAt Method
Returns an SpssServerConf object corresponding to the server configuration with the specified index.
The index corresponds to the order in which the server configurations were created.
Syntax
SpssServerConf=SpssServerConfList.GetItemAt(index)
Remove Method
Removes the first occurrence of the specified server configuration from the list of available server
configurations. There is no effect if the list does not contain the specified server configuration object.
Syntax
SpssServerConfList.Remove(serverConf)
RemoveItemAt Method
Removes the server configuration with the specified index from the list of available server configurations.
The index corresponds to the order in which the server configurations were created.
Syntax
SpssServerConfList.RemoveItemAt(index)
Size Method
Returns the number of configured servers, including the local computer.
Syntax
SpssServerConfList.Size()
SpssScriptContext Class
The SpssScriptContext class provides access to the object that triggers an autoscript as well as the
associated output document object. Autoscripts are scripts that run automatically when triggered by the
creation of specific pieces of output from selected procedures. Scripts are specified as autoscripts and
associated with output items (that trigger them) from the Scripts tab of the Options dialog.
SpssScriptContext objects are only for use when writing a script that will be used as an autoscript.
They have a value of None if referenced by a script that is not being run as an autoscript.
You get an SpssScriptContext object from the GetScriptContext method of the SpssClient object.
Example: Get the Output Item that Triggered an Autoscript
import SpssClient
SpssClient.StartClient()
SpssScriptContext = SpssClient.GetScriptContext()
SpssOutputItem = SpssScriptContext.GetOutputItem()
The GetOutputItem method of the SpssScriptContext object returns the output item
(SpssOutputItem object) that triggered the current autoscript.
GetOutputDoc Method
Returns an SpssOutputDoc object representing the output document associated with the current
autoscript.
Syntax
SpssOutputDoc=SpssScriptContext.GetOutputDoc()
GetOutputItem Method
Returns an SpssOutputItem object representing the output item that triggered the current autoscript.
Syntax
SpssOutputItem=SpssScriptContext.GetOutputItem()
Note: To obtain an object of a specific output type, such as a pivot table or header item, from an
SpssOutputItem object, call the GetSpecificType method of the SpssOutputItem object.
Color values are expressed as integers. If you're accustomed to specifying colors in RGB format, you can
convert to the associated integer using the following:
where R, G, and B are the RGB values. For reference, following are some of the most common colors and
their integer values:
Export options are retrieved from the GetExportOption method of the SpssClient class and
set from the SetExportOption method of that class. The option identifiers have the form
SpssClient.ExportOptions.<option>, where the available option values are listed below--for
example, SpssClient.ExportOptions.GraphExportType. All of the settings are strings.
If you are using a localized version of IBM SPSS Statistics, use the strings displayed in the Format list box
on the Format Value tab (accessed from Format>Cell Properties in the pivot table editor).
You can create up to five custom currency display formats that can include special prefix and suffix
characters and special treatment for negative values. The five custom currency format names are CCA,
CCB, CCC, CCD, and CCE. The string can be used to specify the currency formats.
Preference options are retrieved from the GetPreference method of the SpssClient class
and set from the SetPreference method of that class. The option identifiers have the form
SpssClient.PreferenceOptions.<option>, where the available option values are listed below--for
example, SpssClient.PreferenceOptions.VariableListDisplay. All of the settings are strings.
Note: For the TableRender option, "light" is deprecated for release 20 and higher, and has the same
effect as "fast".
IBM SPSS Statistics - Essentials for Python, which is installed by default with your IBM SPSS Statistics
product, includes a set of extension commands that are implemented in Python and that provide
capabilities beyond what is available with built-in SPSS Statistics procedures. Each extension command
has an associated dialog box that generates command syntax for the command and is available from the
SPSS Statistics menus. The extension commands can also be run from SPSS Statistics command syntax in
the same manner as any built-in command such as FREQUENCIES.
Notes
• Help for each of the Python extension commands is available by clicking Help on the associated dialog
box. The help is not, however, integrated with the SPSS Statistics Help system.
• Complete syntax help for each of the extension commands is available by positioning the cursor within
the command (in a syntax window) and pressing the F1 key. It is also available by running the command
and including the /HELP subcommand. For example:
STATS TABLE CALC /HELP.
The command syntax help is not, however, integrated with the SPSS Statistics Help system and is not
included in the Command Syntax Reference.
Note: The F1 mechanism for displaying help is not supported in distributed mode.
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the web at
"Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or
trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon,
Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or
its subsidiaries in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.
A BaseProcedure class 35
BEGIN PROGRAM (command) 3
active dataset BreakHere method
appending cases 37, 41 SpssLabels class 196
creating new variables 37, 39, 48, 52
name 15
reading into Python 37, 38
C
setting 80 cache property
ActiveDataset 15 Dataset class 59
Add method Caption method 23
SpssServerConfList class 226 case count 71
AddProcedureFootnotes 15 CaseList class
alignment append method 62
cells 161, 169, 177, 197, 206 insert method 63
decimal 162, 169, 177 cases property
foonotes 185, 190, 212, 217 Dataset class 56
labels 169, 177, 185, 190, 197, 206, 212, 217 CategoryFootnotes method 23
vertical 166, 174, 180, 188, 193, 200, 209, 214, 219 CellText class
alignment property Number class 31
Variable class 65 String class 33
AllocNewVarsBuffer method 43 toNumber method 34
append method toString method 34
CaseList class 62 VarName class 33
TextBlock class 88 VarValue class 33
VariableList class 64 ChangeMarkerToRegular method
Append method SpssFootnotes class 184
SpssLogItem class 149 ChangeMarkerToSpecial method
Append method (BasePivotTable class) 22 SpssFootnotes class 184
areas Clear method
background color 160 SpssServerConfList class 226
attributes property ClearSelection method
Variable class 65 SpssOutputDoc class 112
Autofit method SpssPivotTable class 153
SpssPivotTable class 153 close method
autoscripts Dataset class 59
Python 92 CloseDocument method
SpssDataDoc class 105
B SpssOutputDoc class 112
SpssSyntaxDoc class 132
BasePivotTable class colors
Append method 18, 22 setting color values 231
Caption method 23 column width
CategoryFootnotes method 23 getting and setting 66
CellText class 31 ColumnLabelArray method
DimensionFootnotes method 24 SpssPivotTable class 153
Footnotes method 24 columnWidth property
GetDefaultFormatSpec method 24 Variable class 66
HideTitle method 25 CommitCase method 43
Insert method 18, 25 CommitDictionary method 44
SetCategories method 19, 25 Connect method
SetCell method 26 SpssServerConf class 222
SetCellsByColumn method 20, 27 ConnectWithSavedPassword method
SetCellsByRow method 20, 28 SpssServerConf class 222
SetDefaultFormatSpec method 29 Contains method
SimplePivotTable method 17, 29 SpssServerConfList class 226
TitleFootnotes method 31 Copy method
Warnings table 34 SpssOutputDoc class 113
Index 247
CopySpecial method data step (continued)
SpssOutputDoc class 113 accessing variable properties 63
CreateHeaderItem method appending cases 62
SpssOutputDoc class 114 appending new variables 64
CreateImageChartItem method copying datasets 60
SpssOutputDoc class 114 creating new datasets 53
CreateNewServer method ending 70
SpssClient class 94 inserting cases 63
CreateTextItem method inserting new variables 64
SpssOutputDoc class 114 modifying cases 60
CreateTitleItem method reading case data 60
SpssOutputDoc class 114 starting 83
CreateXPathDictionary 37 data types 68, 77
Cursor class DataCellArray method
AllocNewVarsBuffer method 43 SpssPivotTable class 153
append mode 41 DataCellWidths method
close method 43 SpssPivotTable class 161
CommitCase method 43 DataDocsList class
CommitDictionary method 44 GetItemAt method 108
EndChanges method 44 Size method 108
fetchall method 44 datafile attributes
fetchmany method 45 retrieving 57, 71
fetchone method 46 setting 57
IsEndSplit method 47 dataFileAttributes property
read mode 38 Dataset class 57
reset method 47 Dataset class
SetFetchVarList method 48 cache property 59
SetOneVarNameAndType method 48 cases property 56
SetUserMissingInclude method 48 close method 59
SetValueChar method 49 dataFileAttributes property 57
SetValueNumeric method 50 deepCopy method 60
SetVarAlignment method 50 multiResponseSet property 58
SetVarAttributes method 50 name property 57
SetVarCMissingValues method 51 varlist property 57
SetVarCValueLabel method 51 DataStep class 69
SetVarFormat method 51 deepCopy method
SetVarLabel method 51 Dataset class 60
SetVarMeasureLevel method 52 Delete method
SetVarNameAndType method 52 SpssOutputDoc class 115
SetVarNMissingValues method 52 DeleteXPathHandle 70
SetVarNValueLabel method 53 Demote method
SetVarRole method 53 SpssOutputDoc class 115
write mode 39 dictionary
Cut method CreateXPathDictionary 37
SpssOutputDoc class 115 reading dictionary information from Python 70
writing to an XML file 78
Dimension class
D LayerDimension method 220
data DimensionFootnotes method 24
accessing variable properties 63 Disconnect method
appending cases 37, 41, 62 SpssServerConf class 223
appending new variables 64 DisplayTableByRows method
copying datasets 60 SpssPivotTable class 154
creating new variables 37, 39
fetching data in Python 37, 38 E
inserting cases 63
inserting new variables 64 EndChanges method 44
modifying cases 60 EndDataStep 70
reading active dataset into Python 37, 38 EndProcedure 70
reading case data 60 error messages 73
data regions EvaluateXPath 70
height and width 154, 156 executing command syntax from Python 87
data step Exit method
accessing existing datasets 53 SpssClient class 95
Index 249
GetHeight method (continued) GetOutputItemIndex method (continued)
SpssOutputItem class 140 SpssScriptContext class 228
SpssOutputUI class 128 GetOutputItems method
SpssPivotTable class 154 SpssOutputDoc class 117
SpssSyntaxUI class 135 GetOutputOptions method
GetImage 72 SpssOutputDoc class 118
GetItemAt method GetOutputUI method
DataDocsList class 108 SpssOutputDoc class 119
MenuTableList class 151 GetPageBreak method
OutputDocsList class 127 SpssOutputItem class 140
OutputItemList class 127 GetParentItem method
SpssServerConfList class 226 SpssOutputItem class 140
SyntaxDocsList class 135 GetPreference method
GetLastErrorlevel 73 SpssClient class 97
GetLastErrorMessage 73 GetPrintOptions method
GetLeft method SpssOutputDoc class 119
SpssDataUI class 108 GetProcedureName method
SpssOutputUI class 128 SpssOutputItem class 140
SpssSyntaxUI class 135 GetReferredFootnotesAt method
GetLeftMarginAt method SpssDataCells class 171
SpssDataCells class 170 SpssLabels class 198
SpssFootnotes class 185 GetRightMarginAt method
SpssLabels class 197 SpssDataCells class 171
SpssLayerLabels class 212 SpssFootnotes class 186
GetLocale method SpssLabels class 198
SpssClient class 96 SpssLayerLabels class 213
GetLocalServer method GetRotateColumnLabels method
SpssClient class 97 SpssPivotTable class 155
GetMenuTable method GetRotateRowLabels method
SpssDataDoc class 106 SpssPivotTable class 155
SpssOutputDoc class 117 GetRowDimension method
SpssSyntaxDoc class 132 SpssPivotMgr class 221
GetMultiResponseSet 74 GetRowLabelWidthAt method
GetMultiResponseSetNames 74 SpssLabels class 198
GetNumCategories method GetScriptContext method
SpssDimension class 182 SpssClient class 97
GetNumColumnDimensions method GetServerName method
SpssPivotMgr class 220 SpssServerConf class 223
GetNumColumns method GetServerPort method
SpssDataCells class 170 SpssServerConf class 223
SpssLabels class 197 GetSetting 74
GetNumDimensions method GetShowGridLines method
SpssLayerLabels class 212 SpssDataUI class 109
GetNumericFormatAt method GetShowValueLabels method
SpssDataCells class 170 SpssDataUI class 109
GetNumericFormatAtEx method GetSigMarkersAt method
SpssDataCells class 170 SpssDataCells class 171
GetNumLabelsWide method GetSigMarkersType method
SpssLayerLabels class 213 SpssPivotTable class 155
GetNumLayerDimensions method GetSpecificType method
SpssPivotMgr class 220 SpssOutputItem class 140
GetNumRowDimensions method GetSplitterPosition method
SpssPivotMgr class 220 SpssOutputUI class 128
GetNumRows method GetSplitVariableNames 74
SpssDataCells class 171 GetSPSSLocale 74
SpssLabels class 197 GetSPSSLowHigh 75
GetOMSTagList 74 GetSPSSOptions method
GetOutputDoc method SpssClient class 97
SpssScriptContext class 227 GetSPSSPath method
GetOutputDocuments method SpssClient class 98
SpssClient class 97 GetSPSSVersion method
GetOutputItem method SpssClient class 98
SpssScriptContext class 227 GetSubType method
GetOutputItemIndex method SpssOutputItem class 140
Index 251
H IsDesignatedOutputDoc method (continued)
SpssOutputDoc class 120
HasCursor 78 IsDesignatedSyntaxDoc method
HideAllLabelsInDimensionAt method SpssSyntaxDoc class 132
SpssLabels class 201 IsDisplayTableByRows method
HideCaption method SpssPivotTable class 158
SpssPivotTable class 157 IsDistributedMode 79
HideFootnote method IsDistributedMode method
SpssPivotTable class 157 SpssClient class 99
HideFootnotesAt method IsEditable method
SpssDataCells class 175 SpssOutputItem class 142
SpssLabels class 201 IsEndSplit method 47
SpssLayerLabels class 215 IsEqualTo method
HideLabel method SpssDataDoc class 106
SpssDimension class 182 SpssOutputDoc class 120
HideLabelsInDimensionAt method SpssOutputItem class 143
SpssLabels class 201 SpssServerConf class 224
HideLabelsWithDataAt method SpssSyntaxDoc class 132
SpssLabels class 202 IsExpanded method
HideTitle method SpssHeaderItem class 148
SpssPivotTable class 157 IsLegacyTableCompatible method
SpssPivotTable class 158
IsLocalServer method
I SpssServerConf class 224
index property IsModified method
Variable class 66 SpssDataDoc class 106
insert method SpssOutputDoc class 120
CaseList class 63 SpssSyntaxDoc class 133
VariableList class 64 IsOptionAvailable method
Insert method 18, 25 SpssClient class 99
InsertBefore method IsOutputOn 79
SpssLabels class 202 IsPasswordSaved method
InsertChildItem method SpssServerConf class 224
SpssHeaderItem class 147 IsPromptToSave method
InsertFootnote method SpssDataDoc class 106
SpssPivotTable class 157 SpssOutputDoc class 121
InsertNewAfter method SpssSyntaxDoc class 133
SpssLabels class 202 IsSelected method
InsertNewBefore method SpssOutputItem class 143
SpssLabels class 203 IsVisible method
InsertNewFootnoteAt method SpssOutputItem class 143
SpssDataCells class 175
SpssLabels class 203 K
SpssLayerLabels class 215
InsertSharedFootnoteAt method KeepTogether method
SpssDataCells class 175 SpssLabels class 204
SpssLabels class 203
SpssLayerLabels class 216
InsertTable method
L
SpssOutputDoc class 120 label property
InvokeDialog method Variable class 67
SpssDataUI class 110 labels
SpssOutputUI class 129 variable 67, 76
SpssSyntaxUI class 136 LayerDimension method
IsActive 78 Dimension class 220
IsActiveDataDoc method LayerLabelArray method
SpssDataDoc class 106 SpssPivotTable class 158
IsCurrentItem method legacy tables 152
SpssOutputItem class 142 localizing output 11
IsDataDocInUse method LogToViewer method
SpssClient class 98 SpssClient class 99
IsDefaultServer method
SpssServerConf class 224
IsDesignatedOutputDoc method
Index 253
Python functions and classes (continued) reordering labels 210
GetDefaultPlugInVersion 14, 71 reset method 47
GetFileHandles 14, 72 ReSizeColumn method
GetHandleList 14, 72 SpssDataCells class 175
GetImage 14, 72 role property
GetLastErrorlevel 14, 73 Variable class 68
GetLastErrorMessage 14, 73 roles 53, 68, 77
GetMultiResponseSet 14, 74 row count 71
GetMultiResponseSetNames 14, 74 RowLabelArray method
GetOMSTagList 14, 74 SpssPivotTable class 159
GetSetting 14, 74 running command syntax from Python 87
GetSplitVariableNames 14, 74 RunSyntax method
GetSPSSLocale 14, 74 SpssClient class 101
GetSPSSLowHigh 14, 75 SpssSyntaxDoc class 133
GetVarAttributeNames 14, 75
GetVarAttributes 14, 75
GetVariableCount 14, 75
S
GetVariableFormat 14, 76 SaveAs method
GetVariableLabel 14, 76 SpssDataDoc class 106
GetVariableMeasurementLevel 14, 76 SpssOutputDoc class 121
GetVariableName 14, 77 SpssSyntaxDoc class 133
GetVariableRole 14, 77 SaveServers method
GetVariableType 14, 77 SpssClient class 102
GetVarMissingValues 14, 77 ScriptParameter method
GetWeightVar 14, 78 SpssClient class 102
GetXmlUtf16 14, 78 SelectAll method
HasCursor 14, 78 SpssOutputDoc class 122
IsActive 14, 78 SelectAllCharts method
IsDistributedMode 79 SpssOutputDoc class 122
IsOutputOn 14, 79 SelectAllFootnotes method
Procedure class 14, 79 SpssPivotTable class 159
PyInvokeSpss.IsUTF8mode 14, 80 SelectAllLogs method
PyInvokeSpss.IsXDriven 14, 80 SpssOutputDoc class 122
SetActive 14, 80 SelectAllModels method
SetDefaultPlugInVersion 14, 80 SpssOutputDoc class 122
SetMacroValue 14, 81 SelectAllNotes method
SetOutput 14, 81 SpssOutputDoc class 122
SetOutputLanguage 14, 81 SelectAllOther method
ShowInstalledPlugInVersions 14, 82 SpssOutputDoc class 123
SplitChange 14, 82 SelectAllTables method
StartDataStep 14, 83 SpssOutputDoc class 123
StartProcedure 14, 83 SelectAllText method
StartSPSS 14, 85 SpssOutputDoc class 123
StopSPSS 14, 86 SelectAllTitles method
Submit 14, 87 SpssOutputDoc class 123
TextBlock class 14, 87 SelectAllWarnings method
Variable class 14, 53, 65 SpssOutputDoc class 123
VariableList class 14, 53, 63 SelectCaption method
SpssPivotTable class 160
R SelectCellAt method
SpssDataCells class 176
R graphics 112, 122, 138, 141, 142, 145 SpssFootnotes class 189
Remove method SelectCorner method
SpssServerConfList class 226 SpssPivotTable class 160
RemoveBreakHere method SelectDataUnderLabelAt method
SpssLabels class 204 SpssLabels class 204
RemoveChildItem method SelectLabelAt method
SpssHeaderItem class 148 SpssLabels class 205
RemoveItemAt method SpssLayerLabels class 216
SpssServerConfList class 227 SelectLabelDataAt method
RemoveKeepTogether method SpssLabels 205
SpssLabels class 204 SelectLastOutput method
RenumberFootnotes method SpssOutputDoc class 124
SpssFootnotes class 188 SelectReferredFootnotesAt method
Index 255
SetPasswordSaved method (continued) SetTextFontAt method (continued)
SpssServerConf class 225 SpssLayerLabels class 218
SetPreference method SetTextHidden method
SpssClient class 103 SpssPivotTable class 164
SetPrintOptions method SetTextHiddenAt method
SpssOutputDoc class 126 SpssDataCells class 179
SetProcedureName method SpssFootnotes class 191
SpssOutputItem class 144 SpssLabels class 208
SetPromptToSave method SpssLayerLabels class 218
SpssDataDoc class 107 SetTextSize method
SpssOutputDoc class 127 SpssPivotTable class 164
SpssSyntaxDoc class 134 SetTextSizeAt method
SetRightMargin method SpssDataCells class 179
SpssPivotTable class 162 SpssFootnotes class 191
SetRightMarginAt method SpssLabels class 208
SpssDataCells class 178 SpssLayerLabels class 218
SpssFootnotes class 190 SetTextStyle method
SpssLabels class 207 SpssPivotTable class 164
SpssLayerLabels class 217 SetTextStyleAt method
SetRotateColumnLabels method SpssDataCells class 179
SpssPivotTable class 162 SpssFootnotes class 192
SetRotateRowLabels method SpssLabels class 208
SpssPivotTable class 163 SpssLayerLabels class 218
SetRowLabelWidthAt method SetTextUnderlined method
SpssLabels class 207 SpssPivotTable class 165
SetRowsToDisplayRowCount method SetTextUnderlinedAt method
SpssPivotTable class 163 SpssDataCells class 180
SetRowsToDisplayTolerance method SpssFootnotes class 192
SpssPivotTable class 163 SpssLabels class 208
SetSelected method SpssLayerLabels class 219
SpssOutputItem class 144 SetTitleText method
SetServerName method SpssPivotTable class 165
SpssServerConf class 225 SetTop method
SetServerPort method SpssDataUI class 111
SpssServerConf class 225 SpssOutputUI class 130
SetShowGridLines method SpssSyntaxUI class 137
SpssDataUI class 111 SetTopMargin method
SetShowValueLabels method SpssPivotTable class 165
SpssDataUI class 111 SetTopMarginAt method
SetSplitterPosition method SpssDataCells class 180
SpssOutputUI class 130 SpssFootnotes class 192
SetSubType method SpssLabels class 209
SpssOutputItem class 144 SpssLayerLabels class 219
SetSyntax method SetTreeLevel method
SpssSyntaxDoc class 134 SpssOutputItem class 144
SetTableLook method SetUIAlerts method
SpssPivotTable class 163 SpssClient class 103
SetTextColor method SetUpdateScreen method
SpssPivotTable class 164 SpssPivotTable class 165
SetTextColorAt method SetUserDomain method
SpssDataCells class 178 SpssServerConf class 225
SpssFootnotes class 191 SetUserId method
SpssLabels class 207 SpssServerConf class 225
SpssLayerLabels class 218 SetUserMissingInclude method 48
SetTextContents method SetUseSSL method
SpssLogItem class 149 SpssServerConf class 225
SpssTextItem class 150 SetVAlign method
SpssTitleItem class 150 SpssPivotTable class 166
SetTextFont method SetVAlignAt method
SpssPivotTable class 164 SpssDataCells class 180
SetTextFontAt method SpssFootnotes class 193
SpssDataCells class 179 SpssLabels class 209
SpssFootnotes class 191 SpssLayerLabels class 219
SpssLabels class 207 SetValueAt method
Index 257
SpssDataCells class (continued) SpssDataUI class (continued)
GetLeftMarginAt method 170 GetShowGridLines method 109
GetNumColumns method 170 GetShowValueLabels method 109
GetNumericFormatAt method 170 GetTitleText method 109
GetNumericFormatAtEx method 170 GetTop method 109
GetNumRows method 171 GetVisible method 109
GetReferredFootnotesAt method 171 GetWidth method 109
GetRightMarginAt method 171 GetWindowState method 109
GetSigMarkersAt method 171 InvokeDialog method 110
GetTextColorAt method 172 PrintDataDoc method 110
GetTextFontAt method 172 SetHeight method 110
GetTextHiddenAt method 172 SetLeft method 110
GetTextSizeAt method 173 SetShowGridLines method 111
GetTextStyleAt method 173 SetShowValueLabels method 111
GetTextUnderlinedAt method 173 SetTop method 111
GetTopMarginAt method 173 SetVisible method 111
GetUnformattedValueAt method 174 SetWidth method 111
GetVAlignAt method 174 SetWindowState method 111
GetValueAt method 174 SpssDimension class
HideFootnotesAt method 175 GetCategoryValueAt method 182
InsertNewFootnoteAt method 175 GetCurrentCategory method 182
InsertSharedFootnoteAt method 175 GetDimensionName method 182
ReSizeColumn method 175 GetFullDimensionLabel method 182
SelectCellAt method 176 GetNumCategories method 182
SelectReferredFootnotesAt method 176 HideLabel method 182
SetBackgroundColorAt method 176 MoveToColumn method 182
SetBottomMarginAt method 176 MoveToLayer method 183
SetForegroundColorAt method 177 MoveToRow method 183
SetHAlignAt method 177 SetCurrentCategory method 183
SetHDecDigitsAt method 177 SetDimensionName method 183
SetLeftMarginAt method 177 SpssFootnotes class
SetNumericFormatAt method 178 ChangeMarkerToRegular method 184
SetNumericFormatAtWithDecimal method 178 ChangeMarkerToSpecial method 184
SetRightMarginAt method 178 GetBackgroundColorAt method 184
SetTextColorAt method 178 GetBottomMarginAt method 184
SetTextFontAt method 179 GetCount method 185
SetTextHiddenAt method 179 GetForegroundColorAt method 185
SetTextSizeAt method 179 GetHAlignAt method 185
SetTextStyleAt method 179 GetLeftMarginAt method 185
SetTextUnderlinedAt method 180 GetRightMarginAt method 186
SetTopMarginAt method 180 GetTextColorAt method 186
SetVAlignAt method 180 GetTextFontAt method 186
SetValueAt method 180 GetTextHiddenAt method 186
ShowFootnotesAt method 181 GetTextSizeAt method 187
SpssDataDoc class GetTextStyleAt method 187
CloseDocument method 105 GetTextUnderlinedAt method 187
GetCaseCount method 105 GetTopMarginAt method 188
GetDatasetName method 105 GetVAlignAt method 188
GetDataUI method 105 GetValueAt method 188
GetDocumentPath method 105 RenumberFootnotes method 188
GetMenuTable method 106 SelectCellAt method 189
GetVariableCount method 106 SetBackgroundColorAt method 189
IsActiveDataDoc method 106 SetBottomMarginAt method 189
IsEqualTo method 106 SetForegroundColorAt method 189
IsModified method 106 SetHAlignAt method 190
IsPromptToSave method 106 SetLeftMarginAt method 190
SaveAs method 106 SetRightMarginAt method 190
SetAsActiveDataDoc method 107 SetTextColorAt method 191
SetDatasetName method 107 SetTextFontAt method 191
SetModified method 107 SetTextHiddenAt method 191
SetPromptToSave method 107 SetTextSizeAt method 191
SpssDataUI class SetTextStyleAt method 192
GetHeight method 108 SetTextUnderlinedAt method 192
GetLeft method 108 SetTopMarginAt method 192
Index 259
SpssOutputDoc class (continued) SpssOutputItem class (continued)
CreateTitleItem method 114 IsVisible method 143
Cut method 115 SetAlignment method 143
Delete method 115 SetCurrentItem method 143
Demote method 115 SetDescription method 143
ExportCharts method 115 SetHeight method 144
ExportDocument method 116 SetPageBreak method 144
GetCurrentItem method 117 SetProcedureName method 144
GetDocumentPath method 117 SetSelected method 144
GetFooterText method 117 SetSubType method 144
GetHeaderText method 117 SetTreeLevel method 144
GetMenuTable method 117 SetVisible method 145
GetOutputItems method 117 SetWidth method 145
GetOutputOptions method 118 SpssOutputUI class
GetOutputUI method 119 GetHeight method 128
GetPrintOptions method 119 GetLeft method 128
InsertTable method 120 GetSplitterPosition method 128
IsDesignatedOutputDoc method 120 GetTitleText method 128
IsEqualTo method 120 GetTop method 128
IsModified method 120 GetVisible method 129
IsPromptToSave method 121 GetWidth method 129
Paste method 121 GetWindowState method 129
PasteBefore method 121 InvokeDialog method 129
PrintRange method 121 PrintOutputDoc method 129
Promote method 121 SetHeight method 130
SaveAs method 121 SetLeft method 130
SelectAll method 122 SetSplitterPosition method 130
SelectAllCharts method 122 SetTop method 130
SelectAllLogs method 122 SetVisible method 130
SelectAllModels method 122 SetWidth method 131
SelectAllNotes method 122 SetWindowState method 131
SelectAllOther method 123 SpssPivotMgr class
SelectAllTables method 123 GetColumnDimension method 220
SelectAllText method 123 GetNumColumnDimensions method 220
SelectAllTitles method 123 GetNumLayerDimensions method 220
SelectAllWarnings method 123 GetNumRowDimensions method 220
SelectLastOutput method 124 GetRowDimension method 221
SetAsDesignatedOutputDoc method 124 MoveLayersToColumns method 221
SetFooterText method 124 MoveLayersToRows method 221
SetHeaderText method 124 TransposeRowsWithColumns method 221
SetModified method 124 SpssPivotTable class
SetOutputOptions method 124 Autofit method 153
SetPrintOptions method 126 ClearSelection method 153
SetPromptToSave method 127 ColumnLabelArray method 153
SpssOutputItem class DataCellArray method 153
ExportToDocument method 138 DataCellWidths method 161
ExportToImage method 139 DisplayTableByRows method 154
GetAlignment method 139 FootnotesArray method 154
GetDescription method 140 GetCaptionText method 154
GetHeight method 140 GetFootnoteMarkersPosition method 154
GetPageBreak method 140 GetFootnoteMarkersStyle method 154
GetParentItem method 140 GetHeight method 154
GetProcedureName method 140 GetRotateColumnLabels method 155
GetSpecificType method 140 GetRotateRowLabels method 155
GetSubType method 140 GetSigMarkersType method 155
GetTreeLevel method 141 GetTitleText method 155
GetType method 141 GetUpdateScreen method 156
GetTypeString method 142 GetVarNamesDisplay method 156
GetWidth method 142 GetVarValuesDisplay method 156
GetXML method 142 GetWidoworphanLines method 156
IsCurrentItem method 142 GetWidth method 156
IsEditable method 142 Group method 157
IsEqualTo method 143 HideCaption method 157
IsSelected method 143 HideFootnote method 157
Index 261
SpssTitleItem class (continued) Variable class (continued)
GetTextContents method 150 role property 68
SetTextContents method 150 type property 68
StartClient method valueLabels property 68
SpssClient class 104 variable count 75
StartDataStep 83 variable format
StartProcedure 83 getting and setting 66
StartSPSS 85 variable label
StopClient method getting and setting 67
SpssClient class 104 variable names
StopSPSS 86 getting and setting 68
String class 33 variable type
string variables 68, 77 getting and setting 68
Submit 87 VariableList class
Swap method append method 64
SpssLabels class 210 insert method 64
SyntaxDocsList class varlist property
GetItemAt method 135 Dataset class 57
Size method 135 VarName class 33
VarValue class 33
versions
T managing multiple versions 8, 71, 80, 82, 96, 103
table breaks 196
TextBlock class W
append method 88
TitleFootnotes method 31 weight variable 78
toNumber method 34
toString method 34
TransposeRowsWithColumns method
X
SpssPivotMgr class 221 XPath expressions 70
type property
Variable class 68
U
Ungroup method
SpssPivotTable class 168
Unicode
Python programs 80
Unicode mode 4, 6
unknown measurement level 76
V
value labels
getting and setting 68
valueLabels property
Variable class 68
variable alignment
getting and setting 65
variable attributes
retrieving 65, 75
setting 50, 65
Variable class
alignment property 65
attributes property 65
columnWidth property 66
format property 66
index property 66
label property 67
measurementLevel property 67
missingValues property 67
name property 68