Neuron
Spark takes Excel files and converts them to code, accessed via application programming interface (API) services. Neuron is the name of our next-generation "Excel-to-code" service type!
Neuron significantly enhances our past implementations of "Excel-to-code" by converting Excel files into fast and efficient C++ code which is packaged into WebAssembly (Wasm) modules. These Wasm modules enable many use cases including:
Single calculations in the Execute API.
Scaled execution via the Testing Center or Batch APIs.
Bundling code into Hybrid Runner.
Built into an application with SDKs.
Neuron versions
Neuron version for a service version
With each Spark release, a new version of Neuron is deployed with enhancements and fixes. To view the Neuron version used for a particular service version:

From API Tester, submit an API request with Neuron and Review API responses. The "Transaction Details" will state the
compiler_versionused to convert Excel to code.The same details can be seen in the Execute API Execute API.
Managing Neuron versions
For information about Neuron version management see: Choose the Neuron compiler for newly uploaded services, Choose the Neuron compiler version for additional service versions, and Neuron release history.
For information about recompiling your service with a different version of Neuron see Recompile service.
Functional limitations
Known issues
If you encounter an issue with an Excel file that does not convert to a Spark service, please contact Support.
Forms and Controls, Visual Basic for Applications (VBA), Office Scripts, and Python in Excel are not supported.
Excel maintains values at
15significant digits, learn more in Numeric precision in Microsoft Excel.Not every formula will work correctly with array formulas.
Although we do support complex
LAMBDA()functions, not every function definition may be supported. This also applies to the associated helper functions.Pivot Tables, Power Pivot, Power Query, Data Models, Scenario Manager, Solver, Table slicers are not supported.
Use 1904 date system is not supported.
Lotus Compatibility Settings for Transition formula evaluation is not supported and may lead to erroneous results when used with Spark.
Other considerations
There is support for dynamic array formulas and spilled arrays, however inputs and outputs must be set to a predefined size. Setting an input or output with a spill range operator
#such asD3#is not supported.For the
NOW(),RAND(),RANDARRAY(),RANDBETWEEN(), andTODAY()function(s), the calculation results may vary with each calculation. Dates and times may not be relatable to each tenant's deployment.NOW()andTODAY()can be overridden using the Execute API (v3) request_metamanual_now.When using d
AVERAGEIFS,COUNTIFS, andSUMIFSfunctions, be sure thecriteria_rangeandcriteriause the same datatypes. i.e. If thecriteriais a text value, then all the cells in thecriteria_rangeshould also be text. Otherwise, inconsistent and unexpected results may be returned.The
INDIRECT()function limits calculation performance optimization opportunities. Consider rewriting this formula to use a combination ofCHOOSE(),MATCH(),INDEX(), and/orOFFSET().
Compiler messages
Neuron generates a number of messages in the Review the Upload log. For more information about these messages, see Upload log messages.
Last updated
