[OfficeUtils] Timeout when user attempts to export a high number of records (officeUtils)

Forge Component
Published on 2017-04-26 by Elena Novozhilova
24 votes
Published on 2017-04-26 by Elena Novozhilova

We are using the export to excel functionality of officeutils (6 sheets) to ensure the joining of sheets with different data from different queries in the same Excel file. For each query we use RecordListToExcel to transform the data and then the action "Excel_Export_SetTable" to put the data on a sheet in an excel file.

 Issue: Timeout  when user attempts to export a high number of records. The same does not happen when the number of registers is not as high (for example 500).

To see what the problem was, we changed the way the export was made. When using only RecordListToExcel the application works perfectly when it is necessary to export large amounts of records (it was possible to export 8000 records). If we use the extension and try to export a not so large number of records we are already given the timeout error.

We deduce that it is the GenerateExcelFile action fault since the queries have never been changed in any of the situations described.

This functionality requires the export of the data to different sheets of an Excel file and we can not find any extension or component that satisfies this need.

Hey Antonio Pereira,

can you please post the error that you get in service center? displaying the type of timeout and where it happened?

Hi Antonio,

Did you try this component https://www.outsystems.com/forge/component/355/advanced-excel/ ?

Vincent Colpa wrote:

Hey Antonio Pereira,

can you please post the error that you get in service center? displaying the type of timeout and where it happened?

Hello Vicent,

in service center I have  this:

Error Detail

Back to Log



Time of Log:

2017-09-04 11:43:02







Session Id:





Extension metho


Thread was being aborted.

Environment Information

eSpaceVer: 125 (Id=952, PubId=1842, CompiledWith=
http://xxx.xxx.xxx/OperationHistory_TESTE_APENAS.aspx (Method: POST)
AppDomain: /LM/W3SVC/1/ROOT/WIP_E_Production-680-131489567471566217
FilePath: C:\...\PS\running\WIP_E_Production.0353746919\OperationHistory_TESTE_APENAS.aspx
ClientIp: yyy.yyy.yyy
Locale: pt-PT
DateFormat: yyyy-MM-dd
PID: 2732 ('w3wp', Started='7/21/2017 5:58:42 AM', Priv=1364Mb, Virt=11180Mb)
TID: 306
Thread Name:
.NET: 4.0.30319.42000


Thread was being aborted.
   at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y)
   at System.Colle
ctions.Generic.List`1.Contains(T item)
   at NPOI.XSSF.Model.StylesTable.PutStyle(XSSFCellStyle style)
   at NPOI.XSSF.UserModel.XSSFCell.set_CellStyle(ICellStyle value)
   at OutSystems.NssOfficeUtils.CssOfficeUtils.ProcessExcelTable(RCExcelTableRecord ssExcelTable, XSSFWorkbook outputWorkbook, ISheet outputSheet)
   at OutSystems.NssOfficeUtils.CssOfficeUtils.ProcessExcelOutput(RCExcelOutputRecord ssExcelOutput, XSSFWorkbook outputWorkbook)
   at OutSystems.NssOfficeUtils.CssOfficeUtils.ProcessExcelOutputs(RCExcelFileRecord ssExcelFile, XSSFWorkbook outputWorkbook)
   at OutSystems.NssOfficeUtils.CssOfficeUtils.MssGenerateExcelFile(RCExcelFileRecord ssExcelFile, Byte[]& ssExcelBinary)
   at ssWIP_E_Production.RssExtensionOfficeUtils.MssGenerateExcelFile(HeContext heContext, IRecord inParamExcelFile, Byte[]& outParamExcelBinary)



I have the same problem.

I'm running a batch excel generation and the GenerateExcelFile action is causing a time-out exception.

Is it a component bug?


I'm experiencing the exact same problem that Antonio posted about.

Generating an excel file with a High number of records (for example 10000 rows with 20 fields) easily exceeds the default time out of 2 minutes, forcing a timeout. When the action times out, the error log shows the exact same error as Antonio provided.

Generating a file with more than one sheet only aggravates the issue, as the time for generating increases even further.

The OS logs show a warning for slow extension:

OfficeUtils.GenerateExcelFile took 146626 msSLOWEXTENSION

and by debugging I realize that indeed the processing time is spent on the action that generates the binary, not before or after.

Is there some help you can provide with this issue?

Thanks in advance,