Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 32 additions & 5 deletions libraries/radspreadstreamprocessing/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,40 @@ position: 0

Thank you for choosing Telerik **RadSpreadStreamProcessing**!

**RadSpreadStreamProcessing** is a library that allows you create big spreadsheet documents and export them to the most common file formats with a great performance and minimal resources.
This article briefly explains the Spread Stream library specifics as what is spread streaming, how it works compared to the **RadSpreadProcessing** library and when to use it.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This article briefly explains the specifics of RadSpreadStreamProcessing - what is spread streaming, how it works compared to the RadSpreadProcessing library and when to use it.


![](images/SpreadStreamProcessing-Overview_01.png)

## What is Spread Streaming?

Spread streaming is a document processing paradigm that allows you to create big spreadsheet documents with great performance and minimal memory footprint.

The key for the memory efficiency is that the spread streaming library writes the spreadsheet content directly to a stream without creating and preserving the spreadsheet document model in memory. Each time a value is set, the export kicks-in and the new value is written into the stream. This allows you to create large documents with an excellent performance.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not absolutely true. All the values that should be preserved in the exported document are written when the corresponding object is disposed. E.g., if the users set a value to a cell, this value along with the other cell properties will be written when the used ICellExporter object is disposed.


## Key Features

Some of the features you can take advantage of are:

- Export to XLSX or CSV files
- [Styling]({%slug radspreadstreamprocessing-features-styling-cell-styles%}) and [formatting cells]({%slug radspreadstreamprocessing-model-cells%}#set-a-format)
- Hidden [rows]({%slug radspreadstreamprocessing-model-rows%}) and [columns]({%slug radspreadstreamprocessing-model-columns%})
- Grouping
* Export to XLSX or CSV files
* Writing directly into a stream
* Append new worksheets to existing ones
* Grouping
* [Styling]({%slug radspreadstreamprocessing-features-styling-cell-styles%}) and [formatting cells]({%slug radspreadstreamprocessing-model-cells%}#set-a-format)
* Hidden [rows]({%slug radspreadstreamprocessing-model-rows%}) and [columns]({%slug radspreadstreamprocessing-model-columns%})
* [Freezing panes]({%slug radspreadstreamprocessing-features-worksheetviewexporter%}#freeze-panes)

## RadSpreadStreamProcessing vs. RadSpreadProcessing

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a link to the Overview page for RadSpreadProcessing, so the customers can find it easily if they are not familiar with the library.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same link could be added to the first sentence of the article as well.

There are two main differences between the libraries.
* __RadSpreadStreamProcessing__ can be used only to create documents and append data to existing ones. On the other hand you can use the __RadSpreadProcessing__ also for reading documents.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the other hand, you can use the RadSpreadProcessing also for reading and modifying the content of documents.

* __RadSpreadStreamProcessing__ writes directly into a stream, unlike __RadSpreadProcessing__ which creates models for the elements in the document. This is why the memory used with the spread streaming library is significantly lower than when using __RadSpreadProcessing__.

## When to Use the Spread Streaming
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When to Use RadSpreadStreamProcessing


You can use the spread stream processing to create and export large amount of data with a low memory footprint. You can also append data to already existing document stream.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use RadSpreadStreamProcessing...
Mention the great performance as well.


## See Also

* [Getting Started]({%slug radspreadstreamprocessing-getting-started%})
* [Workbook]({%slug radspreadstreamprocessing-model-workbook%})
* [Worksheet View Exporter]({%slug radspreadstreamprocessing-features-worksheetviewexporter%})