Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7638523
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T08:11:50+00:00 2026-05-31T08:11:50+00:00

The MS-XLS file format contains streams, substreams, and records. – Understanding the Excel MS-XLS

  • 0

“The MS-XLS file format contains streams, substreams, and records.” –Understanding the Excel MS-XLS Binary Format

Given an xls file stream:

FileStream stream = System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read);
var xs = new List<int>();
for(int i = 0; i < stream.Length;i++)
{
 xs.Add(stream.ReadByte());
}

How would I go about detecting substreams? Is the name deceiving in that the substreams are actually included in the stream in some sort of sequence?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T08:11:51+00:00Added an answer on May 31, 2026 at 8:11 am

    XLS (and other MS Office formats from before Office 2007) is a structured storage file aka compound binary file (see https://en.wikipedia.org/wiki/COM_Structured_Storage). Structured storage is like a filesystem inside of a file, where files are referred to as “streams”, and directories are called “storages”. A structured storage file has a single root “storage”, which can contain streams and other storages, and it appears that’s where all the streams in an xls file reside (which is probably why their documentation skips over the concept of “storages” and refers to streams as “substreams”).

    Normally, you would access structured storage using the IStorage interface (see http://msdn.microsoft.com/en-us/library/windows/desktop/aa380015%28v=vs.85%29.aspx), but that may not be the most convenient method in .NET.

    For accessing the data in structured storage in .NET, I’d suggest using OpenMCDF – http://sourceforge.net/projects/openmcdf/ – but I haven’t tried it myself so I can’t make any promises regarding its quality.

    “Records” are not part of the structured storage file format, and I think you will need to parse them out of streams yourself.

    Depending on what you’re trying to do, it may be appropriate to use a higher-level interface instead of worrying about the details of the XLS format.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am looking to write to an excel (.xls MS Excel 2003 format) file
I export an Excel document with DisplayTag. It saves as a .xls file to
Does anyone know how to write to an excel file (.xls) via OLEDB in
We have an Excel file with a worksheet containing people records. 1. Phone Number
I'm using excelLibrary to programatically create excel files but I get a file format
How do you specify the file format as .xls and not .xlsx when saving
Whenever I open an xls file I generated on my ASP.NET page with Excel
I want to convert xlsx file to xls format using python. The reason is
How can I access a XML Excel format file with an OLE Connection? Can
I need to create spreadsheet in various file format: .xls, .xlsx, .ods, csv. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.