As a transitional step, this site will temporarily be made Read-Only from July 8th until the new community launch. During this time, you can still search and read articles and discussions.

While the community is read-only, if you have questions or issues requiring TIBCO review/response, please access the new TIBCO Community and select "Ask A Question."

You will need to register or log in or register to engage in the new community.

Custom Connector for TIBCO Spotfire® to read data from Google Sheets

This Connector allows TIBCO Spotfire® users to import data from Google Sheets, CSV and Excel Files located on Google Drive or Google Shared Drives.

Compatible Products

TIBCO Spotfire®


TIBCO Software


TIBCO Component Exchange License


This Connector allows TIBCO Spotfire® users to import data from Google Sheets, CSV and Excel Files located on Google Drive or Google Shared Drives.


Release v18

Published: September 2022

This zip file contains versions, and of the 
Custom Connector For TIBCO Spotfire® To Read Data From Google Sheets 

v10.3.*.* is for TIBCO Spotfire® 10.3 through 11.4
v11.5.*.* is for TIBCO Spotfire® 11.5 through 11.8
v12.0.*.* is for TIBCO Spotfire® 12

The build date is Sep 6th 2022.

Breaking Change: When upgrading to Spotfire 12, existing users must re-create any encrypted
                 Preferences.  Only existing users are affected by this change which is
                 required to enable Linux support.

Fixed: When importing data from a Google Sheet, if all values in a column are null or empty,
       the data type will default to String.  This is the same behavior as when importing 
       data from a CSV file.

New: The Connector can now be deployed on Web Player on Linux with Spotfire 12

Changed: Version numbering changed from x.y.0.z to x.y.z.0 to comply with corporate standards


February 9th 2022.  Build Number: and 

Fixed: Error reading CSV and Excel files from Google drive when running Automation Services job or Scheduled Updates 
        which use a Google service account and data source credentials profile.

Enhanced: Added better error handling for issues that occur when loading CSV and Excel files from Google drive.        


December 21st 2021.  Build Number: and 

Fixed: Error when installing the Connector on Spotfire 11.6


August 20th 2021.  Build Number: and

Breaking Change: The preferences required to use the connector are now configured via a custom
                 tool with the option to encrypt the settings to prevent the ClientID and
                 ClientSecret values being visible in plain text.  Any existing deployments
                 must be updated using the custom tool before use.

Breaking Change: The internal name of the adapter has changed to conform with corporate standards.
                 Any previously saved DXP's will need to be updated before they will work with
                 this version.


March 19th 2020.  Build Number:

Initial Release

This version is for Spotfire 10.3 and newer.

Review (1)
5 9:10pm 09/28/2021

Great work!

I have an issue to report.

If sheet name contains Japanese character, it works fine whe creating new connect and load data to analyst.

However next time when opening the dxp and reload the data, it failes with error as below, it Seems some dictionary can not find appropriate sql table name(which contains Japanese characters). Please fix this. Thanks.

ImportException at Spotfire.Dxp.Data:

System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。

   場所 System.ThrowHelper.ThrowKeyNotFoundException()

   場所 System.Collections.Generic.Dictionary`2.get_Item(TKey key)

   場所 Spotfire.Dxp.Data.Adapters.GoogleSheetsCustom.GoogleSheetsCustomAdapterConnection.ExecuteQueryCoreImpl(SqlQuery query, QueryResultWriter resultWriter, CancellationToken cancellationToken)


Google Sheets (Custom)

Document ID:


Document Name:


Document Type:

Google Sheet


???1 (HRESULT: 80131500)

Stack Trace:

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.CreateView(ManagedDataConnection dataConnection, Guid virtualJoinViewId, DataTableSchema schema, Guid promptCollectionId, CxxSession session, IServiceProvider serviceProvider, GlobalMethodRegistry globalMethodRegistry, NotificationService notificationService, Int32 rowLimit, PendingViewRequestsManager pendingViewRequestsManager)

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.GetColumnsAndProperties()

   場所 Spotfire.Dxp.Data.Persistence.DataItem.PerformUpdate(DataColumnProducer producer, Boolean forceUpdate)

   場所 Spotfire.Dxp.Data.Persistence.DataPool.GetDerivedData(DataColumnProducer producer, Boolean loadingPre50CalculatedColumnProducer, DataPoolReferenceType dataPoolReferenceType)

   場所 Spotfire.Dxp.Data.Persistence.DataPool.GetData(DataColumnProducer producer, Boolean loadingPre50CalculatedColumnProducer, DataPoolReferenceType dataPoolReferenceType)

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.PoolReferenceCompute_(DocumentNode node)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperties.RuntimePropertyMultiplexor`1.ComputeValue(NonSharedRuntimePropertyValue`1 runtimePropertyValue, StatelessPropertyComputer`1 propertyComputer, DocumentNode ownerNode)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperties.RuntimePropertyMultiplexor`1.<>c__DisplayClass33_1.<LookupOrEvaluateValue>b__0()

   場所 Spotfire.Dxp.Framework.DocumentModel.ThreadTransactionInfo.EvaluateWithLimitationTarget(ILimitationTarget limitationTarget, Executor executor)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperties.RuntimePropertyMultiplexor`1.LookupOrEvaluateValue(StatelessPropertyComputer`1 propertyComputer, DocumentNode ownerNode, StatelessDependencyDeclarer dependencyDeclarer)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperties.RuntimePropertyMultiplexor`1.GetValue(StatelessPropertyComputer`1 propertyComputer, StatelessDependencyDeclarer dependencyDeclarer, DocumentNode ownerNode)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperty`1.<>c__DisplayClass29_0.<get_Value>b__2()

   場所 Spotfire.Dxp.Framework.DocumentModel.DocumentView.Use(DocumentView documentView, DocumentViewExecutionState documentViewExecutionState, Action action)

   場所 Spotfire.Dxp.Framework.DocumentModel.RuntimeProperty`1.<get_Value>b__29_0()

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.LoadData(Boolean willPotentiallyLoadData)

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.<TryLoadData>d__120.MoveNext()

   場所 Spotfire.Dxp.Data.Producers.ConnectorImportColumnProducer.<LoadLinkedData>d__95.MoveNext()

   場所 Spotfire.Dxp.Data.DataTable.<PerformLoadLinkedData>d__292.MoveNext()



No reference content found. Please check back soon.