Spread COM

The Best-selling Spreadsheet COM Component

Spread COM

When you need high-performance, fully-customizable spreadsheet/grid components, join professional developers around the world who consistently turn to Spread for powerful, extendable spreadsheet solutions. Now you can own the source code to the COM spreadsheet development tool.

Why use Spread COM?

  • Unmatched Flexibility

    With Spread, you get unmatched flexibility at the cell level for maximum control over the display and entry of the data, plenty of events to respond to user changes, and an extensive list of built-in calculation functions. And you’re guaranteed a quick learning curve using the Spread Designer, a design-time tool with a point-and-click interface.

  • Exceed Grids and Excel

    When the simple grid does not meet your needs, use Spread, the control that far exceeds the grid capabilities. Find calculation accuracy and data scalability in a control that also provides a highly customizable interface. For complex applications developed in Microsoft Visual Studio 6, make sure you have Spread in your toolbox.

Features and Highlights

Customer / Order Lookup

This example demonstrates a typical order detail page. After selecting a company, the order details are displayed. This example uses a minimal amount of code due to Spread’s advanced data-binding features. Further details are explained below.

The Company grid displays all the customers. Users can select a customer to view all the orders placed by that customer.
Spread’s special scroll bars have been included to allow page up/down navigation and first page/last page navigation.
The order table displays all orders for the selected company. Spread automatically assigns the appropriate cell types for each column. The cell types also restrict and validate user entry; for example, users can only enter valid dates.
Notes can be attached to any customer, allowing easy access to supplemental information for this company (for example, a contact person). A cell note is indicated by the red mark in the top right of the cell.
The order summary grid displays all line items associated with the order and uses the built-in Calc Engine to display the totals.
If the information is too long to display in the cell, Spread can display ellipsis points (…) to visually cue the user. The complete information is then displayed when the user positions the mouse over the cell.
The ship to information grid displays the shipping information and prevents the user from editing the data.
Customer / Order Lookup

Card-View Custom Grid

This example demonstrates the flexibility Spread provides for displaying your data. This sample browses all the customers in the database using a card-style interface. You can easily navigate using the arrows. Further details are explained below.

This screen is one spreadsheet.
Add pictures to any cell. The arrows in the example are within the cells in the Spread control.
Turn off grid lines and add custom borders around any data.
Lock any cell to prevent the contents from being edited, making it easy to create headings.
Automatically display ellipsis points indicating there is additional information in the cell.
Add different cell and text colors and change the font for any cell.
Card-View Custom Grid

Aged-receivables Report

This example demonstrates a typical aged-receivables report. The receivable accounts are read from the database and then calculated and displayed in Spread in a familiar format. Further details are explained below.

Create multiple row and column headers.
Create a cell span to join multiple cells.
Merge columns or rows that contain identical data for easier viewing of the data.
You can attach a note to any cell that gives additional information relating to its contents. This example shows a note displayed for a cell.
Automatically display negative numbers as red.
Rotate cell or header text 90 degrees, 180 degrees or 270 degrees.
Aged-receivables Report

Query Builder

This example uses Spread’s twelve cell types to let users build a valid SQL query. Depending on the database field type, Spread will set the corresponding cell type to allow users to input only that type of data.

Add custom header names.
Allow your customers to select a date from the date cell type's pop-up calendar.
Support many popular data formats using Spread’s cell types for precise data entry.
Decide which grid lines will be displayed (horizontal only in this example).
Specify alternating row colors.
Query Builder

Hierarchy / Tree View

This example demonstrates the flexibility you have in presenting data. Spread makes it easy to code almost any custom data presentation your customers need.

Highlight a cell or range of cells using custom borders and colors.
Display Scroll Tips to display the location when scrolling through the spreadsheet.
Hide or show any rows or columns.
Simulate a tree view or hierarchy view by hiding and displaying rows. When a row is selected, you can easily collapse or expand the child rows or columns.
Hierarchy / Tree View

Print / Print Preview

Spread makes it easy to preview and print using the many built-in printing features.

Build custom navigation dialogs.
Preview the contents of the spreadsheet before sending it to the printer.
Define page margins and page orientation.
Specify whether header and footer text is printed.
Build custom print dialogs that present only the options you want to provide to your user.
Decide what information and formatting gets printed.
Preview multiple pages and zoom in/out of the data.
Print / Print Preview

Adding Data

At the heart of any major application is the need to read in data from a number of different sources. Whether the source is from an ODBC-compliant database (Microsoft Access, SQL Server, etc.), text file, Microsoft Excel 97/2000 file, or a number of other sources, Spread can display it. Select from various ways to add data:
  • Bound Mode - adding data from a database
  • Unbound Mode - adding data from another source
  • Virtual Mode - the fastest way to display large amounts of data
Adding Data

Bound Mode

Spread can automatically retrieve information from a multitude of databases and connect to them using any of these connections:
  • ActiveX Data Objects (ADO) 2.0 using OLE DB technology
  • Data Access Objects (DAO)
  • Remote Data Objects (RDO)
After the database connection has been made, Spread can connect to the data source and display the requested information. But Spread takes this several steps further to help ensure data integrity by automatically doing most of the work for you. After the connection has been established, Spread can:
  • Read and display the field names as the column headers
  • Create the necessary number of columns
  • Create the appropriate cell types depending on the data .to ensure data integrity when editing
  • Display the requested data in the appropriate format
  • Allow the user to make any changes on screen and have Spread automatically update the database without writing any extra code
  • Let users navigate though the data using the standard or special scroll bars
  • Insert new columns and rows (especially useful for creating "total" columns or rows)
And of course, all of this default behavior can be modified and enhanced to best suit your business needs. Many of the features listed above are explained in more detail in the Updating/Exporting Data section. Bound Mode

Bound Mode: Cell Types

When bound to a database, Spread can automatically configure the appropriate cell type depending on the data it reads. For example, if the field is a date field, Spread creates a corresponding column of date cells in the spreadsheet. This feature can also be enhanced. For example, let's say the database contains information that you do not want edited by the user, but still needs to be displayed. Spread makes this easy by allowing you to overwrite the default behavior and change any cell type. You can make the cells that you do not want to be changed static text cells, thus preventing any editing. And of course, all this default behavior can be modified and enhanced to suit your business needs. Bound Mode: Cell Types

Bound Mode: Rows and Columns

Easily insert new or delete existing records in the spreadsheet and have these changes reflected in the database. You can also insert "unbound" rows or columns. This is ideal for situations where you might want to display a totals row or column or something similar but not have the data inserted into the database. Bound Mode: Rows and Columns

Unbound Mode

While Spread is powerful in getting data from a database, it is equally effective when loading data from many other sources. In addition to connecting to most major databases, listed below are other types of files that Spread can import with just a few lines of code:
  • Microsoft Excel 97 worksheets
  • Microsoft Excel 2000 worksheets
  • .SS2/3 Files (Spread’s proprietary format)
  • Comma-delimited files
  • Tab-delimited files
  • Custom-delimited files
Unbound Mode

Virtual Mode

You have 300,000 rows of data you need to display in a grid. Loading this in memory will take a long time to read and display, thus making your customer wait during this entire process. That is if your current grid will even support this much data. Using Spread’s Virtual Mode:
  • The display time will be much faster
  • Up to two billion rows and two billion columns are supported
  • Spread holds in memory and buffers a limited number of records at any given time

For example, you can specify that you want to load and display one screen’s worth of data at any given time. Spread will fetch and display this data. When the user scrolls up or down, Spread will request the additional data and display it at that time. Your application no longer needs to load an entire file into memory at one time, which means a faster application and happier customers.

Virtual Mode

Cell Types

One of the most powerful features of Spread is the ability to validate data automatically while the user is entering the information or the data is being programmatically assigned. Spread provides twelve cell types that are configured to accept only a certain type of data input, thus eliminating the need for you to manually validata data. Each cell can be any of the following cell types:
Button Displays a push buton or a two-state button.
Check box Displays a two- or three-state check box.
Combo box Displays a drop-down list in the cell for easy selection.
Date Displays and allows easy editing of date values. The user can also select a date using the included pop-up calendar.
Edit Displays and allows editing of text in a cell.
Currency, Number, Scientific Displays and allows editing of floating point values, including currency values.
Integer Displays and allows editing of integer values.
Mask Displays and allows editing of a formatted mask in a cell.
Owner Drawn Displays a user-defined picture using Window's APIs.
Picture Displays images, including bitmap (.bmp) and icon (.ico) files.
Static Text Displays text in a cell that the user cannot edit or scroll through.
Time Displays and allows editing of a formatted time value in a cell.
Cell Types


As previously mentioned, one of Spread’s biggest advantages is the flexibility and customization you have at the cell level. In addition to the different cell types, there are many ways you can further customize the look of your data.
Fonts / Colors
Grid Lines         

Cell Notes / Text Tips

As illustrated in the application sample shots, you can display a cell note or text tip in any cell to give your customer additional information about the data contained within a cell.
Cell Notes       Text Tips
Cell notes allow you to attach additional information to a cell. Your user can then easily view the information. A cell note is indicated by the dot in the upper-right corner of the cell.   Text tips allow you to view additional information about the data. One use of text tips is to provide hints on what the customer is supposed to do. For example you can display the help text "Select a date from the calendar" when the user is over a date cell. You can also use text tips to display the full contents of the cell if they are too long to be fully displayed in the cell.
  • Display custom text:
  • Display the full cell contents:
Cell Notes / Text Tips


Similar to spreadsheet applications, Spread includes a very comprehensive Calc Engine to provide formula support, including providing over 100 of the most commonly used functions. In addition, you can easily add your own custom formulas to Spread. You can also use named expressions or relative cell addressing to reference the formulas. Formulas


Easily sort rows or columns. Instead of limiting you to sorting by one or two columns, Spread allows you to perform up to a 256-key sort. Sorting can be accomplished using code to specify a range of data to sort, or the user can automatically sort data simply by clicking a column header. Sorting

Locking Cells

There are many instances where you do not want the data to be edited, for example a "totals" column or row, or want it to be edited only after other information has first been added. Spread makes this easy by allowing you to "lock" cells to prevent them from being edited. The cells can be unlocked at any time for editing and then locked again. Locking Cells

Operation Modes

Operation modes control how your customers can interact with Spread. For example, you can make Spread read-only or have it act as a list box. You can specify the following modes to provide the interaction you need:
Mode Description
Normal Acts as a normal spreadsheet.
Read Only Does not allow any editing in the entire spreadsheet.
Row Clicking the mouse highlights the entire row. Double-clicking activates the desired cell.
Single Selection Highlights the entire row, and prevents the user from editing data, similar to a single-selection list box.
Multiple Selection Operates similarly to a multiple-selection list box.
Extended Selection Operates similarly to an extended-selection list box.
Operation Modes

Updating Your Database

When connected to a database, Spread will display the data and allow changes to be made to the data. When the data has been changed, Spread can automatically update the database with the changes. There is no additional coding required on the developer's part to implement this feature and this behavior can easily be modified to best fit your needs. For example, you may need to perform some additional validation on the data before it gets updated. Spread makes this easy by notifying you, or flagging the cell as being changed, when a change has been made. Once you have accepted or rejected the changes, only then will Spread update the database. Updating Your Database

Exporting Files

Once Spread contains data, you have many options for what to do with the data. You have seen how Spread can automatically update databases. You can also export data to many different files. Spread can export to:
  • Microsoft Excel 97/2000
  • XML
  • HTML
  • .SS8 (Spread proprietary format)
  • Tab-delimited
  • Comma-delimited
  • Other custom-delimited files
Exporting Files

Print Preview

The included print preview control makes it easy to preview the printed spreadsheet. There are several options for controlling how your customer will preview the data, including the number of pages that will be previewed on the screen and zooming options. Print Preview

Print Multiple Items

Spread allows you to print multiple items on a single page. This feature allows you to print multiple spreadsheets on one page to create a composite report, add custom header and footer graphics, and to provide many other options that your users will want. This example illustrates color printing and including images in your printed spreadsheet. Print Multiple Items

Printing Options

In addition to previewing the data, there are many options for providing additional information in the printout. These options include:
  • Specifying a range of data to print
  • Specifying page ranges to print
  • Adding custom headers and footers
  • Creating custom print configurations by specifying margins, page orientation, borders, headers, grid lines, colors, and shadow effects
Printing Options

Spread Designer

As you have seen, Spread is a very flexible, yet extremely powerful, spreadsheet and grid component. Given the available features, you might expect a steep learning curve for your developers. However, Spread provides the Spread Designer to facilitate rapid development, for example:
  • Developers can use the Spread Designer to aid in the quick creation of the look and feel of the spreadsheet.
  • Managers can use the Spread Designer to design a prototype, with no coding necessary.
Simply select options from the available menus. Changes in the Spread Designer can be applied to the project or saved for future use. Spread Designer


Whether you are a customer or just trying us out, we stand behind you. Valuable learning resources such as samples, videos, and forums are free and just a click away.

Ready to start your 30-day, risk-free trial?

Includes free technical support.

Ready to buy?

All licenses are developer-based and there are no limits on the distribution of applications–unlimited, royalty-free, run-time distribution.


Need help deciding?

Chat with sales, call or email. We're here to answer all your questions.

1.800.858.2739 | 412.681.4343 sales@componentone.com

Chat with Sales