FarPoint.Excel
Computes Adler32 checksum for a stream of data. An Adler32
checksum is not as reliable as a CRC32 checksum, but a lot faster to
compute.
The specification for Adler32 may be found in RFC 1950.
ZLIB Compressed Data Format Specification version 3.3)
From that document:
"ADLER32 (Adler-32 checksum)
This contains a checksum value of the uncompressed data
(excluding any dictionary data) computed according to Adler-32
algorithm. This algorithm is a 32-bit extension and improvement
of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073
standard.
Adler-32 is composed of two sums accumulated per byte: s1 is
the sum of all bytes, s2 is the sum of all s1 values. Both sums
are done modulo 65521. s1 is initialized to 1, s2 to zero. The
Adler-32 checksum is stored as s2*65536 + s1 in most-
significant-byte first (network) order."
"8.2. The Adler-32 algorithm
The Adler-32 algorithm is much faster than the CRC32 algorithm yet
still provides an extremely low probability of undetected errors.
The modulo on unsigned long accumulators can be delayed for 5552
bytes, so the modulo operation time is negligible. If the bytes
are a, b, c, the second sum is 3a + 2b + c + 3, and so is position
and order sensitive, unlike the first sum, which is just a
checksum. That 65521 is prime is important to avoid a possible
large class of two-byte errors that leave the check unchanged.
(The Fletcher checksum uses 255, which is not prime and which also
makes the Fletcher check insensitive to single byte changes 0 -
255.)
The sum s1 is initialized to 1 instead of zero to make the length
of the sequence part of s2, so that the length does not have to be
checked separately. (Any sequence of zeroes has a Fletcher
checksum of zero.)"
Interface to compute a data checksum used by checked input/output streams.
A data checksum can be updated by one byte or with a byte array. After each
update the value of the current checksum can be returned by calling
getValue. The complete checksum object can also be reset
so it can be used again with new data.
Resets the data checksum as if no update was ever called.
Adds one byte to the data checksum.
the data value to add. The high byte of the int is ignored.
Updates the data checksum with the bytes taken from the array.
buffer an array of bytes
Adds the byte array to the data checksum.
The buffer which contains the data
The offset in the buffer where the data starts
the number of data bytes to add.
Returns the data checksum computed so far.
largest prime smaller than 65536
Creates a new instance of the Adler32 class.
The checksum starts off with a value of 1.
Resets the Adler32 checksum to the initial value.
Updates the checksum with a byte value.
The data value to add. The high byte of the int is ignored.
Updates the checksum with an array of bytes.
The source of the data to update with.
Updates the checksum with the bytes taken from the array.
an array of bytes
the start of the data used for this update
the number of bytes to use for this update
Returns the Adler32 data checksum computed so far.
Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
Polynomials over GF(2) are represented in binary, one bit per coefficient,
with the lowest powers in the most significant bit. Then adding polynomials
is just exclusive-or, and multiplying a polynomial by x is a right shift by
one. If we call the above polynomial p, and represent a byte as the
polynomial q, also with the lowest power in the most significant bit (so the
byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
where a mod b means the remainder after dividing a by b.
This calculation is done using the shift-register method of multiplying and
taking the remainder. The register is initialized to zero, and for each
incoming bit, x^32 is added mod p to the register if the bit is a one (where
x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
x (which is shifting right by one and adding x^32 mod p if the bit shifted
out is a one). We start with the highest power (least significant bit) of
q and repeat for all eight bits of q.
The table is simply the CRC of all possible eight bit values. This is all
the information needed to generate CRC's on data a byte at a time for all
combinations of CRC register values and incoming bytes.
The crc data checksum so far.
Resets the CRC32 data checksum as if no update was ever called.
Updates the checksum with the int bval.
the byte is taken as the lower 8 bits of value
Updates the checksum with the bytes taken from the array.
buffer an array of bytes
Adds the byte array to the data checksum.
The buffer which contains the data
The offset in the buffer where the data starts
The number of data bytes to update the CRC with.
Returns the CRC32 data checksum computed so far.
Bzip2 checksum algorithm
Initialise a default instance of
Reset the state of Crc.
Update the Crc value.
data update is based on
Update Crc based on a block of data
Update Crc based on a portion of a block of data
block of data
index of first byte to use
number of bytes to use
Get the current Crc value.
Event arguments for scanning.
Initialise a new instance of
The name for this event.
Get set a value indicating if scanning should continue or not.
Event arguments for directories.
Initialize an instance of .
The name for this directory.
Flag value indicating if any matching files are contained in this directory.
Get a value indicating if the directory contains any matching files or not.
Arguments passed when scan failures are detected.
Initialise a new instance of
The name to apply.
The exception to use.
The applicable name.
The applicable exception.
Get / set a value indicating wether scanning should continue.
Delegate invoked when a directory is processed.
Delegate invoked when a file is processed.
Delegate invoked when a directory failure is detected.
Delegate invoked when a file failure is detected.
FileSystemScanner provides facilities scanning of files and directories.
Initialise a new instance of
The file filter to apply when scanning.
Initialise a new instance of
The file filter to apply.
The directory filter to apply.
Initialise a new instance of
The file filter to apply.
Initialise a new instance of
The file filter to apply.
The directory filter to apply.
Delegate to invoke when a directory is processed.
Delegate to invoke when a file is processed.
Delegate to invoke when a directory failure is detected.
Delegate to invoke when a file failure is detected.
Raise the DirectoryFailure event.
The directory name.
The exception detected.
Raise the FileFailure event.
The file name.
The exception detected.
Raise the ProcessFile event.
The file name.
Raise the ProcessDirectory event.
The directory name.
Flag indicating if the directory has matching files.
Scan a directory.
The base directory to scan.
True to recurse subdirectories, false to scan a single directory.
The file filter currently in use.
The directory filter currently in use.
Flag indicating if scanning should continue running.
INameTransform defines how file system names are transformed for use with archives.
Given a file name determine the transformed value.
The name to transform.
The transformed file name.
Given a directory name determine the transformed value.
The name to transform.
The transformed directory name
Scanning filters support filtering of names.
Test a name to see if it 'matches' the filter.
The name to test.
Returns true if the name matches the filter, false if it does not match.
NameFilter is a string matching class which allows for both positive and negative
matching.
A filter is a sequence of independant regular expressions separated by semi-colons ';'
Each expression can be prefixed by a plus '+' sign or a minus '-' sign to denote the expression
is intended to include or exclude names. If neither a plus or minus sign is found include is the default
A given name is tested for inclusion before checking exclusions. Only names matching an include spec
and not matching an exclude spec are deemed to match the filter.
An empty filter matches any name.
The following expression includes all name ending in '.dat' with the exception of 'dummy.dat'
"+\.dat$;-^dummy\.dat$"
Construct an instance based on the filter expression passed
The filter expression.
Test a string to see if it is a valid regular expression.
The expression to test.
True if expression is a valid false otherwise.
Test an expression to see if it is valid as a filter.
The filter expression to test.
True if the expression is valid, false otherwise.
Convert this filter to its string equivalent.
The string equivalent for this filter.
Test a value to see if it is included by the filter.
The value to test.
True if the value is included, false otherwise.
Test a value to see if it is excluded by the filter.
The value to test.
True if the value is excluded, false otherwise.
Test a value to see if it matches the filter.
The value to test.
True if the value matches, false otherwise.
Compile this filter.
PathFilter filters directories and files using a form of regular expressions
by full path name.
See NameFilter for more detail on filtering.
Initialise a new instance of .
The filter expression to apply.
Test a name to see if it matches the filter.
The name to test.
True if the name matches, false otherwise.
ExtendedPathFilter filters based on name, file size, and the last write time of the file.
Provides an example of how to customise filtering.
Initialise a new instance of ExtendedPathFilter.
The filter to apply.
The minimum file size to include.
The maximum file size to include.
Initialise a new instance of ExtendedPathFilter.
The filter to apply.
The minimum to include.
The maximum to include.
Initialise a new instance of ExtendedPathFilter.
The filter to apply.
The minimum file size to include.
The maximum file size to include.
The minimum to include.
The maximum to include.
Test a filename to see if it matches the filter.
The filename to test.
True if the filter matches, false otherwise.
Get/set the minimum size for a file that will match this filter.
Get/set the maximum size for a file that will match this filter.
Get/set the minimum value that will match for this filter.
Files with a LastWrite time less than this value are excluded by the filter.
Get/set the maximum value that will match for this filter.
Files with a LastWrite time greater than this value are excluded by the filter.
NameAndSizeFilter filters based on name and file size.
A sample showing how filters might be extended.
Initialise a new instance of NameAndSizeFilter.
The filter to apply.
The minimum file size to include.
The maximum file size to include.
Test a filename to see if it matches the filter.
The filename to test.
True if the filter matches, false otherwise.
Get/set the minimum size for a file that will match this filter.
Get/set the maximum size for a file that will match this filter.
Provides simple " utilities.
Read from a ensuring all the required data is read.
The stream to read.
The buffer to fill.
Read from a " ensuring all the required data is read.
The stream to read data from.
The buffer to store data in.
The offset at which to begin storing data.
The number of bytes of data to store.
Copy the contents of one to another.
The stream to source data from.
The stream to write data to.
The buffer to use during copying.
Initialise an instance of
PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives.
While it has been superceded by more recent and more powerful algorithms, its still in use and
is viable for preventing casual snooping
Generates new encryption keys based on given seed
PkzipClassicCryptoBase provides the low level facilities for encryption
and decryption using the PkzipClassic algorithm.
Transform a single byte
The transformed value
Set the key schedule for encryption/decryption.
The data use to set the keys from.
Update encryption keys
Reset the internal state.
PkzipClassic CryptoTransform for encryption.
Initialise a new instance of
The key block to use.
Transforms the specified region of the specified byte array.
The input for which to compute the transform.
The offset into the byte array from which to begin using data.
The number of bytes in the byte array to use as data.
The computed transform.
Transforms the specified region of the input byte array and copies
the resulting transform to the specified region of the output byte array.
The input for which to compute the transform.
The offset into the input byte array from which to begin using data.
The number of bytes in the input byte array to use as data.
The output to which to write the transform.
The offset into the output byte array from which to begin writing data.
The number of bytes written.
Cleanup internal state.
Gets a value indicating whether the current transform can be reused.
Gets the size of the input data blocks in bytes.
Gets the size of the output data blocks in bytes.
Gets a value indicating whether multiple blocks can be transformed.
PkzipClassic CryptoTransform for decryption.
Initialise a new instance of .
The key block to decrypt with.
Transforms the specified region of the specified byte array.
The input for which to compute the transform.
The offset into the byte array from which to begin using data.
The number of bytes in the byte array to use as data.
The computed transform.
Transforms the specified region of the input byte array and copies
the resulting transform to the specified region of the output byte array.
The input for which to compute the transform.
The offset into the input byte array from which to begin using data.
The number of bytes in the input byte array to use as data.
The output to which to write the transform.
The offset into the output byte array from which to begin writing data.
The number of bytes written.
Cleanup internal state.
Gets a value indicating whether the current transform can be reused.
Gets the size of the input data blocks in bytes.
Gets the size of the output data blocks in bytes.
Gets a value indicating whether multiple blocks can be transformed.
Defines a wrapper object to access the Pkzip algorithm.
This class cannot be inherited.
Generate an initial vector.
Generate a new random key.
Create an encryptor.
The key to use for this encryptor.
Initialisation vector for the new encryptor.
Returns a new PkzipClassic encryptor
Create a decryptor.
Keys to use for this new decryptor.
Initialisation vector for the new decryptor.
Returns a new decryptor.
Get / set the applicable block size in bits.
The only valid block size is 8.
Get an array of legal key sizes.
Get an array of legal block sizes.
Get / set the key value applicable.
SharpZipBaseException is the base exception class for the SharpZipLibrary.
All library exceptions are derived from this.
NOTE: Not all exceptions thrown will be derived from this class.
A variety of other exceptions are possible for example
Deserialization constructor
for this constructor
for this constructor
Initializes a new instance of the SharpZipBaseException class.
Initializes a new instance of the SharpZipBaseException class with a specified error message.
Initializes a new instance of the SharpZipBaseException class with a specified
error message and a reference to the inner exception that is the cause of this exception.
Error message string
The inner exception
This is the Deflater class. The deflater class compresses input
with the deflate algorithm described in RFC 1951. It has several
compression levels and three different strategies described below.
This class is not thread safe. This is inherent in the API, due
to the split of deflate and setInput.
author of the original java version : Jochen Hoenicke
The best and slowest compression level. This tries to find very
long and distant string repetitions.
The worst but fastest compression level.
The default compression level.
This level won't compress at all but output uncompressed blocks.
The compression method. This is the only method supported so far.
There is no need to use this constant at all.
Creates a new deflater with default compression level.
Creates a new deflater with given compression level.
the compression level, a value between NO_COMPRESSION
and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
if lvl is out of range.
Creates a new deflater with given compression level.
the compression level, a value between NO_COMPRESSION
and BEST_COMPRESSION.
true, if we should suppress the Zlib/RFC1950 header at the
beginning and the adler checksum at the end of the output. This is
useful for the GZIP/PKZIP formats.
if lvl is out of range.
Resets the deflater. The deflater acts afterwards as if it was
just created with the same compression level and strategy as it
had before.
Flushes the current input block. Further calls to deflate() will
produce enough output to inflate everything in the current input
block. This is not part of Sun's JDK so I have made it package
private. It is used by DeflaterOutputStream to implement
flush().
Finishes the deflater with the current input block. It is an error
to give more input after this method was called. This method must
be called to force all bytes to be flushed.
Sets the data which should be compressed next. This should be only
called when needsInput indicates that more input is needed.
If you call setInput when needsInput() returns false, the
previous input that is still pending will be thrown away.
The given byte array should not be changed, before needsInput() returns
true again.
This call is equivalent to setInput(input, 0, input.length).
the buffer containing the input data.
if the buffer was finished() or ended().
Sets the data which should be compressed next. This should be
only called when needsInput indicates that more input is needed.
The given byte array should not be changed, before needsInput() returns
true again.
the buffer containing the input data.
the start of the data.
the number of data bytes of input.
if the buffer was Finish()ed or if previous input is still pending.
Sets the compression level. There is no guarantee of the exact
position of the change, but if you call this when needsInput is
true the change of compression level will occur somewhere near
before the end of the so far given input.
the new compression level.
Get current compression level
Returns the current compression level
Sets the compression strategy. Strategy is one of
DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
position where the strategy is changed, the same as for
SetLevel() applies.
The new compression strategy.
Deflates the current input block with to the given array.
The buffer where compressed data is stored
The number of compressed bytes added to the output, or 0 if either
IsNeedingInput() or IsFinished returns true or length is zero.
Deflates the current input block to the given array.
Buffer to store the compressed data.
Offset into the output array.
The maximum number of bytes that may be stored.
The number of compressed bytes added to the output, or 0 if either
needsInput() or finished() returns true or length is zero.
If Finish() was previously called.
If offset or length don't match the array length.
Sets the dictionary which should be used in the deflate process.
This call is equivalent to setDictionary(dict, 0, dict.Length).
the dictionary.
if SetInput () or Deflate () were already called or another dictionary was already set.
Sets the dictionary which should be used in the deflate process.
The dictionary is a byte array containing strings that are
likely to occur in the data which should be compressed. The
dictionary is not stored in the compressed output, only a
checksum. To decompress the output you need to supply the same
dictionary again.
The dictionary data
The index where dictionary information commences.
The number of bytes in the dictionary.
If SetInput () or Deflate() were already called or another dictionary was already set.
Compression level.
If true no Zlib/RFC1950 headers or footers are generated
The current state.
The total bytes of output written.
The pending output.
The deflater engine.
Gets the current adler checksum of the data that was processed so far.
Gets the number of input bytes processed so far.
Gets the number of output bytes so far.
Returns true if the stream was finished and no more output bytes
are available.
Returns true, if the input buffer is empty.
You should then call setInput().
NOTE: This method can also return true when the stream
was finished.
This class contains constants used for deflation.
Set to true to enable debugging
Written to Zip file to identify a stored block
Identifies static tree in Zip file
Identifies dynamic tree in Zip file
Header flag indicating a preset dictionary for deflation
Sets internal buffer sizes for Huffman encoding
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Strategies for deflater
The default strategy
This strategy will only allow longer string repetitions. It is
useful for random data with a small character set.
This strategy will not look for string repetitions at all. It
only encodes with Huffman trees (which means, that more common
characters get a smaller encoding.
Low level compression engine for deflate algorithm which uses a 32K sliding window
with secondary compression from Huffman/Shannon-Fano codes.
Construct instance with pending buffer
Pending buffer to use
>
Deflate drives actual compression of data
Returns true if progress has been made.
Sets input data to be deflated. Should only be called when NeedsInput()
returns true
The buffer containing input data.
The offset of the first byte of data.
The number of bytes of data to use as input.
Return true if input is needed via SetInput
Set compression dictionary
Reset internal state
Reset Adler checksum
Set the deflate level (0-9)
The value to set the level to.
Fill the window
Inserts the current string in the head hash and returns the previous
value for this hash.
The previous hash value
Find the best (longest) string in the window matching the
string starting at strstart.
Preconditions:
strstart + MAX_MATCH <= window.length.
True if a match greater than the minimum length is found
Hashtable, hashing three characters to an index for window, so
that window[index]..window[index+2] have this hash code.
Note that the array should really be unsigned short, so you need
to and the values with 0xffff.
prev[index & WMASK] points to the previous index that has the
same hash code as the string starting at index. This way
entries with the same hash code are in a linked list.
Note that the array should really be unsigned short, so you need
to and the values with 0xffff.
Points to the current character in the window.
lookahead is the number of characters starting at strstart in
window that are valid.
So window[strstart] until window[strstart+lookahead-1] are valid
characters.
This array contains the part of the uncompressed stream that
is of relevance. The current character is indexed by strstart.
The current compression function.
The input data for compression.
The total bytes of input read.
The offset into inputBuf, where input data starts.
The end offset of the input data.
The adler checksum
Get current value of Adler checksum
Total data processed
Get/set the deflate strategy
This is the DeflaterHuffman class.
This class is not thread safe. This is inherent in the API, due
to the split of Deflate and SetInput.
author of the original java version : Jochen Hoenicke
Pending buffer to use
Construct instance with pending buffer
Pending buffer to use
Reset internal state
Write all trees to pending buffer
Compress current buffer writing data to pending buffer
Flush block to output with no compression
Data to write
Index of first byte to write
Count of bytes to write
True if this is the last block
Flush block to output with compression
Data to flush
Index of first byte to flush
Count of bytes to flush
True if this is the last block
Get value indicating if internal buffer is full
true if buffer is full
Add literal to buffer
Literal value to add to buffer.
Value indicating internal buffer is full
Add distance code and length to literal and distance trees
Distance code
Length
Value indicating if internal buffer is full
Reverse the bits of a 16 bit value.
Value to reverse bits
Value with bits reversed
Resets the internal state of the tree
Check that all frequencies are zero
At least one frequency is non-zero
Set static codes and length
new codes
length for new codes
Build dynamic codes and lengths
Get encoded length
Encoded length, the sum of frequencies * lengths
Scan a literal or distance tree to determine the frequencies of the codes
in the bit length tree.
Write tree values
Tree to write
This class stores the pending output of the Deflater.
author of the original java version : Jochen Hoenicke
This class is general purpose class for writing data to a buffer.
It allows you to write bits as well as bytes
Based on DeflaterPending.java
author of the original java version : Jochen Hoenicke
Internal work buffer
construct instance using default buffer size of 4096
construct instance using specified buffer size
size to use for internal buffer
Clear internal state/buffers
Write a byte to buffer
The value to write
Write a short value to buffer LSB first
The value to write.
write an integer LSB first
The value to write.
Write a block of data to buffer
data to write
offset of first byte to write
number of bytes to write
Align internal buffer on a byte boundary
Write bits to internal buffer
source of bits
number of bits to write
Write a short value to internal buffer most significant byte first
value to write
Flushes the pending buffer into the given output array. If the
output array is to small, only a partial flush is done.
The output array.
The offset into output array.
The maximum number of bytes to store.
Convert internal buffer to byte array.
Buffer is empty on completion
The internal buffer contents converted to a byte array.
The number of bits written to the buffer
Indicates if buffer has been flushed
Construct instance with default buffer size
Inflater is used to decompress data that has been compressed according
to the "deflate" standard described in rfc1951.
By default Zlib (rfc1950) headers and footers are expected in the input.
You can use constructor public Inflater(bool noHeader) passing true
if there is no Zlib header information
The usage is as following. First you have to set some input with
SetInput(), then Inflate() it. If inflate doesn't
inflate any bytes there may be three reasons:
- IsNeedingInput() returns true because the input buffer is empty.
You have to provide more input with
SetInput().
NOTE: IsNeedingInput() also returns true when, the stream is finished.
- IsNeedingDictionary() returns true, you have to provide a preset
dictionary with
SetDictionary().
- IsFinished returns true, the inflater has finished.
Once the first output byte is produced, a dictionary will not be
needed at a later stage.
author of the original java version : John Leuner, Jochen Hoenicke
These are the possible states for an inflater
Copy lengths for literal codes 257..285
Extra bits for literal codes 257..285
Copy offsets for distance codes 0..29
Extra bits for distance codes
This variable contains the current state.
The adler checksum of the dictionary or of the decompressed
stream, as it is written in the header resp. footer of the
compressed stream.
Only valid if mode is DECODE_DICT or DECODE_CHKSUM.
The number of bits needed to complete the current state. This
is valid, if mode is DECODE_DICT, DECODE_CHKSUM,
DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS.
True, if the last block flag was set in the last block of the
inflated stream. This means that the stream ends after the
current block.
The total number of inflated bytes.
The total number of bytes set with setInput(). This is not the
value returned by the TotalIn property, since this also includes the
unprocessed input.
This variable stores the noHeader flag that was given to the constructor.
True means, that the inflated stream doesn't contain a Zlib header or
footer.
Creates a new inflater or RFC1951 decompressor
RFC1950/Zlib headers and footers will be expected in the input data
Creates a new inflater.
True if no RFC1950/Zlib header and footer fields are expected in the input data
This is used for GZIPed/Zipped input.
For compatibility with
Sun JDK you should provide one byte of input more than needed in
this case.
Resets the inflater so that a new stream can be decompressed. All
pending input and output will be discarded.
Decodes a zlib/RFC1950 header.
False if more input is needed.
The header is invalid.
Decodes the dictionary checksum after the deflate header.
False if more input is needed.
Decodes the huffman encoded symbols in the input stream.
false if more input is needed, true if output window is
full or the current block ends.
if deflated stream is invalid.
Decodes the adler checksum after the deflate stream.
false if more input is needed.
If checksum doesn't match.
Decodes the deflated stream.
false if more input is needed, or if finished.
if deflated stream is invalid.
Sets the preset dictionary. This should only be called, if
needsDictionary() returns true and it should set the same
dictionary, that was used for deflating. The getAdler()
function returns the checksum of the dictionary needed.
The dictionary.
Sets the preset dictionary. This should only be called, if
needsDictionary() returns true and it should set the same
dictionary, that was used for deflating. The getAdler()
function returns the checksum of the dictionary needed.
The dictionary.
The index into buffer where the dictionary starts.
The number of bytes in the dictionary.
No dictionary is needed.
The adler checksum for the buffer is invalid
Sets the input. This should only be called, if needsInput()
returns true.
the input.
Sets the input. This should only be called, if needsInput()
returns true.
The source of input data
The index into buffer where the input starts.
The number of bytes of input to use.
No input is needed.
The index and/or count are wrong.
Inflates the compressed stream to the output buffer. If this
returns 0, you should check, whether IsNeedingDictionary(),
IsNeedingInput() or IsFinished() returns true, to determine why no
further output is produced.
the output buffer.
The number of bytes written to the buffer, 0 if no further
output can be produced.
if buffer has length 0.
if deflated stream is invalid.
Inflates the compressed stream to the output buffer. If this
returns 0, you should check, whether needsDictionary(),
needsInput() or finished() returns true, to determine why no
further output is produced.
the output buffer.
the offset in buffer where storing starts.
the maximum number of bytes to output.
the number of bytes written to the buffer, 0 if no further output can be produced.
if count is less than 0.
if the index and / or count are wrong.
if deflated stream is invalid.
Returns true, if the input buffer is empty.
You should then call setInput().
NOTE: This method also returns true when the stream is finished.
Returns true, if a preset dictionary is needed to inflate the input.
Returns true, if the inflater has finished. This means, that no
input is needed and no output can be produced.
Gets the adler checksum. This is either the checksum of all
uncompressed bytes returned by inflate(), or if needsDictionary()
returns true (and thus no output was yet produced) this is the
adler checksum of the expected dictionary.
the adler checksum.
Gets the total number of output bytes returned by Inflate().
the total number of output bytes.
Gets the total number of processed compressed input bytes.
The total number of bytes of processed input bytes.
Gets the number of unprocessed input bytes. Useful, if the end of the
stream is reached and you want to further process the bytes after
the deflate stream.
The number of bytes of the input which have not been processed.
Huffman tree used for inflation
Literal length tree
Distance tree
Constructs a Huffman tree from the array of code lengths.
the array of code lengths
Reads the next symbol from input. The symbol is encoded using the
huffman tree.
input the input source.
the next symbol, or -1 if not enough input is available.
A special stream deflating or compressing the bytes that are
written to it. It uses a Deflater to perform actual deflating.
Authors of the original java version : Tom Tromey, Jochen Hoenicke
Creates a new DeflaterOutputStream with a default Deflater and default buffer size.
the output stream where deflated output should be written.
Creates a new DeflaterOutputStream with the given Deflater and
default buffer size.
the output stream where deflated output should be written.
the underlying deflater.
Creates a new DeflaterOutputStream with the given Deflater and
buffer size.
The output stream where deflated output is written.
The underlying deflater to use
The buffer size to use when deflating
bufsize is less than or equal to zero.
baseOutputStream does not support writing
deflater instance is null
Finishes the stream by calling finish() on the deflater.
Not all input is deflated
Encrypt a single byte
The encrypted value
Encrypt a block of data
Data to encrypt. NOTE the original contents of the buffer are lost
Offset of first byte in buffer to encrypt
Number of bytes in buffer to encrypt
Initializes encryption keys based on given password
Update encryption keys
Deflates everything in the input buffers. This will call
def.deflate() until all bytes from the input buffers
are processed.
Sets the current position of this stream to the given value. Not supported by this class!
Any access
Sets the length of this stream to the given value. Not supported by this class!
Any access
Read a byte from stream advancing position by one
Any access
Read a block of bytes from stream
Any access
Asynchronous reads are not supported a NotSupportedException is always thrown
The buffer to read into.
The offset to start storing data at.
The number of bytes to read
The async callback to use.
The state to use.
Returns an
Any access
Asynchronous writes arent supported, a NotSupportedException is always thrown
The buffer to write.
The offset to begin writing at.
The number of bytes to write.
The to use.
The state object.
Returns an IAsyncResult.
Any access
Flushes the stream by calling flush() on the deflater and then
on the underlying stream. This ensures that all bytes are
flushed.
Calls and closes the underlying
stream when is true.
Writes a single byte to the compressed output stream.
The byte value.
Writes bytes from an array to the compressed stream.
The byte array
The offset into the byte array where to start.
The number of bytes to write.
This buffer is used temporarily to retrieve the bytes from the
deflater and write them to the underlying output stream.
The deflater which is used to deflate the stream.
Base stream the deflater depends on.
Get/set flag indicating ownership of the underlying stream.
When the flag is true will close the underlying stream also.
Allows client to determine if an entry can be patched after its added
Get/set the password used for encryption.
When set to null or if the password is empty no encryption is performed
Gets value indicating stream can be read from
Gets a value indicating if seeking is supported for this stream
This property always returns false
Get value indicating if this stream supports writing
Get current length of stream
Gets the current position within the stream.
Any attempt to set position
An input buffer customised for use by
The buffer supports decryption of incoming data.
Initialise a new instance of with a default buffer size
The stream to buffer.
Initialise a new instance of
The stream to buffer.
The size to use for the buffer
A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB.
Call passing the current clear text buffer contents.
The inflater to set input for.
Fill the buffer from the underlying input stream.
Read a buffer directly from the input stream
The buffer to fill
Returns the number of bytes read.
Read a buffer directly from the input stream
The buffer to read into
The offset to start reading data into.
The number of bytes to read.
Returns the number of bytes read.
Read clear text data from the input stream.
The buffer to add data to.
The offset to start adding data at.
The number of bytes to read.
Returns the number of bytes actually read.
Read a byte from the input stream.
Returns the byte read.
Read an unsigned short in little endian byte order.
Read an int in little endian byte order.
Read an int baseInputStream little endian byte order.
Get the length of bytes bytes in the
Get the contents of the raw data buffer.
This may contain encrypted data.
Get the number of useable bytes in
Get the contents of the clear text buffer.
Get/set the number of bytes available
Get/set the to apply to any data.
Set this value to null to have no transform applied.
This filter stream is used to decompress data compressed using the "deflate"
format. The "deflate" format is described in RFC 1951.
This stream may form the basis for other decompression filters, such
as the ZipInputStream.
Author of the original java version : John Leuner.
Create an InflaterInputStream with the default decompressor
and a default buffer size of 4KB.
The InputStream to read bytes from
Create an InflaterInputStream with the specified decompressor
and a default buffer size of 4KB.
The source of input data
The decompressor used to decompress data read from baseInputStream
Create an InflaterInputStream with the specified decompressor
and the specified buffer size.
The InputStream to read bytes from
The decompressor to use
Size of the buffer to use
Skip specified number of bytes of uncompressed data
Number of bytes to skip
The number of bytes skipped, zero if the end of
stream has been reached
Number of bytes to skip is less than zero
Clear any cryptographic state.
Fills the buffer with more data to decompress.
Stream ends early
Flushes the baseInputStream
Sets the position within the current stream
Always throws a NotSupportedException
Any access
Set the length of the current stream
Always throws a NotSupportedException
Any access
Writes a sequence of bytes to stream and advances the current position
This method always throws a NotSupportedException
Any access
Writes one byte to the current stream and advances the current position
Always throws a NotSupportedException
Any access
Entry point to begin an asynchronous write. Always throws a NotSupportedException.
The buffer to write data from
Offset of first byte to write
The maximum number of bytes to write
The method to be called when the asynchronous write operation is completed
A user-provided object that distinguishes this particular asynchronous write request from other requests
An IAsyncResult that references the asynchronous write
Any access
Closes the input stream. When
is true the underlying stream is also closed.
Reads decompressed data into the provided buffer byte array
The array to read and decompress data into
The offset indicating where the data should be placed
The number of bytes to decompress
The number of bytes read. Zero signals the end of stream
Inflater needs a dictionary
Decompressor for this stream
Input buffer for this stream.
Base stream the inflater reads from.
The compressed size
Flag indicating wether this instance has been closed or not.
Flag indicating wether this instance is designated the stream owner.
When closing if this flag is true the underlying stream is closed.
Get/set flag indicating ownership of underlying stream.
When the flag is true will close the underlying stream also.
The default value is true.
Returns 0 once the end of the stream (EOF) has been reached.
Otherwise returns 1.
Gets a value indicating whether the current stream supports reading
Gets a value of false indicating seeking is not supported for this stream.
Gets a value of false indicating that this stream is not writeable.
A value representing the length of the stream in bytes.
The current position within the stream.
Throws a NotSupportedException when attempting to set the position
Attempting to set the position
Contains the output from the Inflation process.
We need to have a window so that we can refer backwards into the output stream
to repeat stuff.
Author of the original java version : John Leuner
Write a byte to this output window
value to write
if window is full
Append a byte pattern already in the window itself
length of pattern to copy
distance from end of window pattern occurs
If the repeated data overflows the window
Copy from input manipulator to internal window
source of data
length of data to copy
the number of bytes copied
Copy dictionary to window
source dictionary
offset of start in source dictionary
length of dictionary
If window isnt empty
Get remaining unfilled space in window
Number of bytes left in window
Get bytes available for output in window
Number of bytes filled
Copy contents of window to output
buffer to copy to
offset to start at
number of bytes to count
The number of bytes copied
If a window underflow occurs
Reset by clearing window so GetAvailable returns 0
This class allows us to retrieve a specified number of bits from
the input buffer, as well as copy big byte blocks.
It uses an int buffer to store up to 31 bits for direct
manipulation. This guarantees that we can get at least 16 bits,
but we only need at most 15, so this is all safe.
There are some optimizations in this class, for example, you must
never peek more than 8 bits more than needed, and you must first
peek bits before you may drop them. This is not a general purpose
class but optimized for the behaviour of the Inflater.
authors of the original java version : John Leuner, Jochen Hoenicke
Constructs a default StreamManipulator with all buffers empty
Get the next sequence of bits but don't increase input pointer. bitCount must be
less or equal 16 and if this call succeeds, you must drop
at least n - 8 bits in the next call.
The number of bits to peek.
the value of the bits, or -1 if not enough bits available. */
Drops the next n bits from the input. You should have called PeekBits
with a bigger or equal n before, to make sure that enough bits are in
the bit buffer.
Gets the next n bits and increases input pointer. This is equivalent
to followed by , except for correct error handling.
The number of bits to retrieve.
the value of the bits, or -1 if not enough bits available.
Skips to the next byte boundary.
Copies bytes from input buffer to output buffer starting
at output[offset]. You have to make sure, that the buffer is
byte aligned. If not enough bytes are available, copies fewer
bytes.
The buffer to copy bytes to.
The offset in the buffer at which copying starts
The length to copy, 0 is allowed.
The number of bytes copied, 0 if no bytes were available.
Length is less than zero
Bit buffer isnt byte aligned
Resets state and empties internal buffers
Add more input for consumption.
Only call when IsNeedingInput returns true
data to be input
offset of first byte of input
number of bytes of input to add.
Gets the number of bits available in the bit buffer. This must be
only called when a previous PeekBits() returned -1.
the number of bits available.
Gets the number of bytes available.
The number of bytes available.
Returns true when SetInput can be called
FastZipEvents supports all events applicable to FastZip operations.
Delegate to invoke when processing directories.
Delegate to invoke when processing files.
Delegate to invoke when processing directory failures.
Delegate to invoke when processing file failures.
Raise the directory failure event.
The directory causing the failure.
The exception for this event.
A boolean indicating if execution should continue or not.
Raises the file failure delegate.
The file causing the failure.
The exception for this failure.
A boolean indicating if execution should continue or not.
Raises the Process File delegate.
The file being processed.
A boolean indicating if execution should continue or not.
Fires the process directory delegate.
The directory being processed.
Flag indicating if directory has matching files as determined by the current filter.
FastZip provides facilities for creating and extracting zip files.
Only relative paths are supported.
Initialise a default instance of .
Initialise a new instance of
The events to use during operations.
Create a zip file.
The name of the zip file to create.
The directory to source files from.
True to recurse directories, false for no recursion.
The file filter to apply.
The directory filter to apply.
Create a zip file/archive.
The name of the zip file to create.
The directory to obtain files and directories from.
True to recurse directories, false for no recursion.
The file filter to apply.
Create a zip archive sending output to the passed.
The stream to write archive data to.
The directory to source files from.
True to recurse directories, false for no recursion.
The file filter to apply.
The directory filter to apply.
Extract the contents of a zip file.
The zip file to extract from.
The directory to save extracted information in.
A filter to apply to files.
Extract the contents of a zip file.
The zip file to extract from.
The directory to save extracted information in.
The style of overwriting to apply.
A delegate to invoke when confirming overwriting.
A filter to apply to files.
A filter to apply to directories.
Flag indicating wether to restore the date and time for extracted files.
Get/set a value indicating wether empty directories should be created.
Get / set the password value.
Get or set the active when creating Zip files.
Get or set the active when creating Zip files.
Get/set a value indicating wether file dates and times should
be restored when extracting files from an archive.
The default value is false.
Defines the desired handling when overwriting files during extraction.
Prompt the user to confirm overwriting
Never overwrite files.
Always overwrite files.
Delegate called when confirming overwriting of files.
Defines factory methods for creating new values.
Create a for a file given its name
The name of the file to create an entry for.
Create a for a directory given its name
The name of the directory to create an entry for.
Get/set the applicable.
Determines how entries are tested to see if they should use Zip64 extensions or not.
Zip64 will not be forced on entries during processing.
An entry can have this overridden if required
Zip64 should always be used.
#ZipLib will determine use based on entry values when added to archive.
The kind of compression used for an entry in an archive
A direct copy of the file contents is held in the archive
Common Zip compression method using a sliding dictionary
of up to 32KB and secondary compression from Huffman/Shannon-Fano trees
An extension to deflate with a 64KB window. Not supported by #Zip currently
Not supported by #Zip currently
WinZip special for AES encryption, Not supported by #Zip
Identifies the encryption algorithm used for an entry
No encryption has been used.
Encrypted using PKZIP 2.0 or 'classic' encryption.
DES encryption has been used.
RCS encryption has been used for encryption.
Triple DES encryption with 168 bit keys has been used for this entry.
Triple DES with 112 bit keys has been used for this entry.
AES 128 has been used for encryption.
AES 192 has been used for encryption.
AES 256 has been used for encryption.
RC2 corrected has been used for encryption.
Blowfish has been used for encryption.
Twofish has been used for encryption.
RCS has been used for encryption.
An unknown algorithm has been used for encryption.
Defines the contents of the general bit flags field for an archive entry.
Bit 0 if set indicates that the file is encrypted
Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating)
Bit 3 if set indicates a trailing data desciptor is appended to the entry data
Bit 4 is reserved for use with method 8 for enhanced deflation
Bit 5 if set indicates the file contains Pkzip compressed patched data.
Requires version 2.7 or greater.
Bit 6 if set strong encryption has been used for this entry.
Bit 7 is currently unused
Bit 8 is currently unused
Bit 9 is currently unused
Bit 10 is currently unused
Bit 11 if set indicates the filename and
comment fields for this file must be encoded using UTF-8.
Bit 12 is documented as being reserved by PKware for enhanced compression.
Bit 13 if set indicates that values in the local header are masked to hide
their actual values, and the central directory is encrypted.
Used when encrypting the central directory contents.
Bit 14 is documented as being reserved for use by PKware
Bit 15 is documented as being reserved for use by PKware
This class contains constants used for Zip format files
The version made by field for entries in the central header when created by this library
This is also the Zip version for the library when comparing against the version required to extract
for an entry. See .
The version made by field for entries in the central header when created by this library
This is also the Zip version for the library when comparing against the version required to extract
for an entry. See ZipInputStream.CanDecompressEntry.
The minimum version required to support strong encryption
The minimum version required to support strong encryption
The version required for Zip64 extensions
Size of local entry header (excluding variable length fields at end)
Size of local entry header (excluding variable length fields at end)
Size of Zip64 data descriptor
Size of data descriptor
Size of data descriptor
Size of central header entry (excluding variable fields)
Size of central header entry
Size of end of central record (excluding variable fields)
Size of end of central record (excluding variable fields)
Size of 'classic' cryptographic header stored before any entry data
Size of cryptographic header stored before entry data
Signature for local entry header
Signature for local entry header
Signature for spanning entry
Signature for spanning entry
Signature for temporary spanning entry
Signature for temporary spanning entry
Signature for data descriptor
This is only used where the length, Crc, or compressed size isnt known when the
entry is created and the output stream doesnt support seeking.
The local entry cannot be 'patched' with the correct values in this case
so the values are recorded after the data prefixed by this header, as well as in the central directory.
Signature for data descriptor
This is only used where the length, Crc, or compressed size isnt known when the
entry is created and the output stream doesnt support seeking.
The local entry cannot be 'patched' with the correct values in this case
so the values are recorded after the data prefixed by this header, as well as in the central directory.
Signature for central header
Signature for central header
Signature for Zip64 central file header
Signature for Zip64 central file header
Signature for Zip64 central directory locator
Signature for archive extra data signature (were headers are encrypted).
Central header digitial signature
Central header digitial signature
End of central directory record signature
End of central directory record signature
Convert a portion of a byte array to a string.
Data to convert to string
Number of bytes to convert starting from index 0
data[0]..data[length - 1] converted to a string
Convert a byte array to string
Byte array to convert
dataconverted to a string
Convert a byte array to string
The applicable general purpose bits flags
Byte array to convert
The number of bytes to convert.
dataconverted to a string
Convert a byte array to string
Byte array to convert
The applicable general purpose bits flags
dataconverted to a string
Convert a string to a byte array
String to convert to an array
Converted array
Convert a string to a byte array
The applicable general purpose bits flags
String to convert to an array
Converted array
Initialise default instance of ZipConstants
Private to prevent instances being created.
Default encoding used for string conversion. 0 gives the default system Ansi code page.
Dont use unicode encodings if you want to be Zip compatible!
Using the default code page isnt the full solution neccessarily
there are many variable factors, codepage 850 is often a good choice for
European users, however be careful about compatability.
Defines known values for the property.
Host system = MSDOS
Host system = Amiga
Host system = Open VMS
Host system = Unix
Host system = VMCms
Host system = Atari ST
Host system = OS2
Host system = Macintosh
Host system = ZSystem
Host system = Cpm
Host system = Windows NT
Host system = MVS
Host system = VSE
Host system = Acorn RISC
Host system = VFAT
Host system = Alternate MVS
Host system = BEOS
Host system = Tandem
Host system = OS400
Host system = OSX
Host system = WinZIP AES
This class represents an entry in a zip archive. This can be a file
or a directory
ZipFile and ZipInputStream will give you instances of this class as
information about the members in an archive. ZipOutputStream
uses an instance of this class when creating an entry in a Zip file.
Author of the original java version : Jochen Hoenicke
Creates a zip entry with the given name.
The name for this entry. Can include directory components.
The convention for names is 'unix' style paths with relative names only.
There are with no device names and path elements are separated by '/' characters.
The name passed is null
Creates a zip entry with the given name and version required to extract
The name for this entry. Can include directory components.
The convention for names is 'unix' style paths with no device names and
path elements separated by '/' characters. This is not enforced see CleanName
on how to ensure names are valid if this is desired.
The minimum 'feature version' required this entry
The name passed is null
Initializes an entry with the given name and made by information
Name for this entry
Version and HostSystem Information
Minimum required zip feature version required to extract this entry
Compression method for this entry.
The name passed is null
versionRequiredToExtract should be 0 (auto-calculate) or > 10
This constructor is used by the ZipFile class when reading from the central header
It is not generally useful, use the constructor specifying the name only.
Creates a deep copy of the given zip entry.
The entry to copy.
Test the external attributes for this to
see if the external attributes are Dos based (including WINNT and variants)
and match the values
The attributes to test.
Returns true if the external attributes are known to be DOS/Windows
based and have the same attributes set as the value passed.
Force this entry to be recorded using Zip64 extensions.
Get a value indicating wether Zip64 extensions were forced.
Process extra data fields updating the entry based on the contents.
True if the extra data fields should be handled
for a local header, rather than for a central header.
Test entry to see if data can be extracted.
Returns true if data can be extracted for this entry; false otherwise.
Creates a copy of this zip entry.
Gets the string representation of this ZipEntry.
Test a compression method to see if this library
supports extracting data compressed with that method
The compression method to test.
Returns true if the compression method is supported; false otherwise
Cleans a name making it conform to Zip file conventions.
Devices names ('c:\') and UNC share names ('\\server\share') are removed
and forward slashes ('\') are converted to back slashes ('/').
Names are made relative by trimming leading slashes which is compatible
with the ZIP naming convention.
Name to clean
Get a value indicating wether the entry has a CRC value available.
Get/Set flag indicating if entry is encrypted.
A simple helper routine to aid interpretation of flags
Get / set a flag indicating wether entry name and comment text are
encoded in Unicode UTF8
Value used during password checking for PKZIP 2.0 / 'classic' encryption.
Get/Set general purpose bit flag for entry
General purpose bit flag
Bit 0: If set, indicates the file is encrypted
Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
Imploding:
Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
Deflating:
Bit 2 Bit 1
0 0 Normal compression was used
0 1 Maximum compression was used
1 0 Fast compression was used
1 1 Super fast compression was used
Bit 3: If set, the fields crc-32, compressed size
and uncompressed size are were not able to be written during zip file creation
The correct values are held in a data descriptor immediately following the compressed data.
Bit 4: Reserved for use by PKZIP for enhanced deflating
Bit 5: If set indicates the file contains compressed patch data
Bit 6: If set indicates strong encryption was used.
Bit 7-15: Unused or reserved
Get/Set index of this entry in Zip file
Get/set offset for use in central header
Get/Set external file attributes as an integer.
The values of this are operating system dependant see
HostSystem for details
Get the version made by for this entry or zero if unknown.
The value / 10 indicates the major version number, and
the value mod 10 is the minor version number
Gets the compatability information for the external file attribute
If the external file attributes are compatible with MS-DOS and can be read
by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value
will be non-zero and identify the host system on which the attributes are compatible.
The values for this as defined in the Zip File format and by others are shown below. The values are somewhat
misleading in some cases as they are not all used as shown. You should consult the relevant documentation
to obtain up to date and correct information. The modified appnote by the infozip group is
particularly helpful as it documents a lot of peculiarities. The document is however a little dated.
- 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
- 1 - Amiga
- 2 - OpenVMS
- 3 - Unix
- 4 - VM/CMS
- 5 - Atari ST
- 6 - OS/2 HPFS
- 7 - Macintosh
- 8 - Z-System
- 9 - CP/M
- 10 - Windows NTFS
- 11 - MVS (OS/390 - Z/OS)
- 12 - VSE
- 13 - Acorn Risc
- 14 - VFAT
- 15 - Alternate MVS
- 16 - BeOS
- 17 - Tandem
- 18 - OS/400
- 19 - OS/X (Darwin)
- 99 - WinZip AES
- remainder - unused
Get minimum Zip feature version required to extract this entry
Minimum features are defined as:
1.0 - Default value
1.1 - File is a volume label
2.0 - File is a folder/directory
2.0 - File is compressed using Deflate compression
2.0 - File is encrypted using traditional encryption
2.1 - File is compressed using Deflate64
2.5 - File is compressed using PKWARE DCL Implode
2.7 - File is a patch data set
4.5 - File uses Zip64 format extensions
4.6 - File is compressed using BZIP2 compression
5.0 - File is encrypted using DES
5.0 - File is encrypted using 3DES
5.0 - File is encrypted using original RC2 encryption
5.0 - File is encrypted using RC4 encryption
5.1 - File is encrypted using AES encryption
5.1 - File is encrypted using corrected RC2 encryption
5.1 - File is encrypted using corrected RC2-64 encryption
6.1 - File is encrypted using non-OAEP key wrapping
6.2 - Central directory encryption (not confirmed yet)
6.3 - File is compressed using LZMA
6.3 - File is compressed using PPMD+
6.3 - File is encrypted using Blowfish
6.3 - File is encrypted using Twofish
Get a value indicating wether this entry can be decompressed by the library.
Gets a value indicating if the entry requires Zip64 extensions
to store the full entry values.
Get a value indicating wether the central directory entry requires Zip64 extensions to be stored.
Get/Set DosTime
Gets/Sets the time of last modification of the entry.
Returns the entry name. The path components in the entry should
always separated by slashes ('/'). Dos device names like C: should also
be removed. See the class, or
Gets/Sets the size of the uncompressed data.
The size or -1 if unknown.
Gets/Sets the size of the compressed data.
The compressed entry size or -1 if unknown.
Gets/Sets the crc of the uncompressed data.
Crc is not in the range 0..0xffffffffL
The crc value or -1 if unknown.
Gets/Sets the compression method. Only Deflated and Stored are supported.
The compression method for this entry
Gets/Sets the extra data.
Extra data is longer than 64KB (0xffff) bytes.
Extra data or null if not set.
Gets/Sets the entry comment.
If comment is longer than 0xffff.
The comment or null if not set.
A comment is only available for entries when read via the class.
The class doesnt have the comment data available.
Gets a value indicating if the entry is a directory.
however.
A directory is determined by an entry name with a trailing slash '/'.
The external file attributes can also indicate an entry is for a directory.
Currently only dos/windows attributes are tested in this manner.
The trailing slash convention should always be followed.
Get a value of true if the entry appears to be a file; false otherwise
This only takes account of DOS/Windows attributes. Other operating systems are ignored.
For linux and others the result may be incorrect.
Basic implementation of
Initialise a new instance of the class.
A default , and the LastWriteTime for files is used.
Initiailise a new instance of using the specified
Initialise a new instance of using the specified
The time to set all values to.
Make a new ZipEntry for a file.
The name of the file to create a new entry for.
Returns a new based on the .
Get / set the to be used when creating new values.
Get /set the in use.
Get / set the value to use when is set to
A bitmask defining the attributes to be retrieved from the actual file.
The default is to get all possible attributes from the actual file.
A bitmask defining which attributes to be set on.
By default no attributes are set on.
Defines the possible values to be used for the .
Use the recorded LastWriteTime value for the file.
Use the recorded LastWriteTimeUtc value for the file
Use the recorded CreateTime value for the file.
Use the recorded CreateTimeUtc value for the file.
Use the recorded LastAccessTime value for the file.
Use the recorded LastAccessTimeUtc value for the file.
Use a fixed value.
The actual value used can be
specified via the constructor or
using the with the setting set
to which will use the when this class was constructed.
Represents exception conditions specific to Zip archive handling
Deserialization constructor
for this constructor
for this constructor
Initializes a new instance of the ZipException class.
Initializes a new instance of the ZipException class with a specified error message.
The error message that explains the reason for the exception.
Initialise a new instance of ZipException.
A message describing the error.
The exception that is the cause of the current exception.
A class to handle the extra data field for Zip entries
Extra data contains 0 or more values each prefixed by a header tag and length.
They contain zero or more bytes of actual data.
The data is held internally using a copy on write strategy. This is more efficient but
means that for extra data created by passing in data can have the values modified by the caller
in some circumstances.
Initialise a default instance.
Initialise with known extra data.
The extra data.
Get the raw extra data value
Returns the raw byte[] extra data this instance represents.
Clear the stored data.
Get a read-only for the associated tag.
The tag to locate data for.
Returns a containing tag data or null if no tag was found.
Find an extra data value
The identifier for the value to find.
Returns true if the value was found; false otherwise.
Add a new entry to extra data
The ID for this entry.
The data to add.
If the ID already exists its contents are replaced.
Start adding a new entry.
Add data using , , , or .
The new entry is completed and actually added by calling
Add entry data added since using the ID passed.
The identifier to use for this entry.
Add a byte of data to the pending new entry.
The byte to add.
Add data to a pending new entry.
The data to add.
Add a short value in little endian order to the pending new entry.
The data to add.
Add an integer value in little endian order to the pending new entry.
The data to add.
Add a long value in little endian order to the pending new entry.
The data to add.
Delete an extra data field.
The identifier of the field to delete.
Returns true if the field was found and deleted.
Read a long in little endian form from the last found data value
Returns the long value read.
Read an integer in little endian form from the last found data value.
Returns the integer read.
Read a short value in little endian form from the last found data value.
Returns the short value read.
Read a byte from an extra data
The byte value read or -1 if the end of data has been reached.
Skip data during reading.
The number of bytes to skip.
Internal form of that reads data at any location.
Returns the short value read.
Dispose of this instance.
Gets the current extra data length.
Get the length of the last value found by
This is only value if has previsouly returned true.
Get the index for the current read value.
This is only valid if has previously returned true.
Initially it will be the index of the first byte of actual data. Its is updated after calls to
, and .
Get the number of bytes remaining to be read for the current value;
Arguments used with KeysRequiredEvent
Initialise a new instance of
The name of the file for which keys are required.
Initialise a new instance of
The name of the file for which keys are required.
The current key value.
Get the name of the file for which keys are required.
Get/set the key value
The strategy to apply to testing.
Find the first error only.
Find all possible errors.
The operation in progress reported by a during testing.
TestArchive
Setting up testing.
Testing an individual entries header
Testing an individual entries data
Testing an individual entry has completed.
Running miscellaneous tests
Testing is complete
Status returned returned by during testing.
TestArchive
Initialise a new instance of
The this status applies to.
Get the current in progress.
Get the this status is applicable to.
Get the current/last entry tested.
Get the number of errors detected so far.
Get the number of bytes tested so far for the current entry.
Get a value indicating wether the last entry test was valid.
Delegate invoked during testing if supplied indicating current progress and status.
If the message is non-null an error has occured. If the message is null
the operation as found in status has started.
The possible ways of applying updates to an archive.
Perform all updates on temporary files ensuring that the original file is saved.
Update the archive directly, which is faster but less safe.
This class represents a Zip archive. You can ask for the contained
entries, or get an input stream for a file entry. The entry is
automatically decompressed.
You can also update the archive adding or deleting entries.
This class is thread safe for input: You can open input streams for arbitrary
entries in different threads.
Author of the original java version : Jochen Hoenicke
using System;
using System.Text;
using System.Collections;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
class MainClass
{
static public void Main(string[] args)
{
using (ZipFile zFile = new ZipFile(args[0])) {
Console.WriteLine("Listing of : " + zFile.Name);
Console.WriteLine("");
Console.WriteLine("Raw Size Size Date Time Name");
Console.WriteLine("-------- -------- -------- ------ ---------");
foreach (ZipEntry e in zFile) {
if ( e.IsFile ) {
DateTime d = e.DateTime;
Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize,
d.ToString("dd-MM-yy"), d.ToString("HH:mm"),
e.Name);
}
}
}
}
}
Event handler for handling encryption keys.
Handles getting of encryption keys when required.
The file for which encryption keys are required.
Opens a Zip file with the given name for reading.
An i/o error occurs
The file doesn't contain a valid zip archive.
Opens a Zip file reading the given .
An i/o error occurs.
The file doesn't contain a valid zip archive.
Opens a Zip file reading the given .
An i/o error occurs
The file doesn't contain a valid zip archive.
The stream provided cannot seek
Initialises a default instance with no entries and no file storage.
Finalize this instance.
Closes the ZipFile. If the stream is owned then this also closes the underlying input stream.
Once closed, no further instance methods should be called.
An i/o error occurs.
Create a new whose data will be stored in a file.
The name of the archive to create.
Returns the newly created
Create a new whose data will be stored on a stream.
The stream providing data storage.
Returns the newly created
Returns an enumerator for the Zip entries in this Zip file.
The Zip file has been closed.
Return the index of the entry with a matching name
Entry name to find
If true the comparison is case insensitive
The index position of the matching entry or -1 if not found
The Zip file has been closed.
Searches for a zip entry in this archive with the given name.
String comparisons are case insensitive
The name to find. May contain directory components separated by slashes ('/').
A clone of the zip entry, or null if no entry with that name exists.
The Zip file has been closed.
Creates an input stream reading the given zip entry as
uncompressed data. Normally zip entry should be an entry
returned by GetEntry().
the input stream.
The ZipFile has already been closed
The compression method for the entry is unknown
The entry is not found in the ZipFile
Creates an input stream reading a zip entry
The index of the entry to obtain an input stream for.
An input stream.
The ZipFile has already been closed
The compression method for the entry is unknown
The entry is not found in the ZipFile
Test an archive for integrity/validity
Perform low level data Crc check
true if all tests pass, false otherwise
Testing will terminate on the first error found.
Test an archive for integrity/validity
Perform low level data Crc check
The to apply.
The handler to call during testing.
true if all tests pass, false otherwise
Test a local header against that provided from the central directory
The entry to test against
The type of tests to carry out.
The offset of the entries data in the file
Begin updating this archive.
The archive storage for use during the update.
The data source to utilise during updating.
Begin updating to this archive.
The storage to use during the update.
Begin updating this archive.
Commit current updates, updating this archive.
Abort updating leaving the archive unchanged.
Set the file comment to be recorded when the current update is commited.
The comment to record.
Add a new entry to the archive.
The name of the file to add.
The compression method to use.
Ensure Unicode text is used for name and comment for this entry.
Add a new entry to the archive.
The name of the file to add.
The compression method to use.
Add a file to the archive.
The name of the file to add.
Add a file entry with data.
The source of the data for this entry.
The name to give to the entry.
Add a file entry with data.
The source of the data for this entry.
The name to give to the entry.
The compression method to use.
Add a file entry with data.
The source of the data for this entry.
The name to give to the entry.
The compression method to use.
Ensure Unicode text is used for name and comments for this entry.
Add a that contains no data.
The entry to add.
This can be used to add directories, volume labels, or empty file entries.
Add a directory entry to the archive.
The directory to add.
Delete an entry by name
The filename to delete
True if the entry was found and deleted; false otherwise.
Delete a from the archive.
The entry to delete.
Write an unsigned short in little endian byte order.
Write an int in little endian byte order.
Write an unsigned int in little endian byte order.
Write a long in little endian byte order.
Get a raw memory buffer.
Returns a raw memory buffer.
Get the size of the source descriptor for a .
The update to get the size for.
The descriptor size, zero if there isnt one.
Get an output stream for the specified
The entry to get an output stream for.
The output stream obtained for the entry.
Releases the unmanaged resources used by the this instance and optionally releases the managed resources.
true to release both managed and unmanaged resources;
false to release only unmanaged resources.
Read an unsigned short in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Read a uint in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Search for and read the central directory of a zip file filling the entries array.
An i/o error occurs.
The central directory is malformed or cannot be found
Locate the data for a given entry.
The start offset of the data.
The stream ends prematurely
The local header signature is invalid, the entry and central header file name lengths are different
or the local and entry compression methods dont match
Get/set the encryption key value.
Password to be used for encrypting/decrypting files.
Set to null if no password is required.
Get a value indicating wether encryption keys are currently available.
Get/set a flag indicating if the underlying stream is owned by the ZipFile instance.
If the flag is true then the stream will be closed when Close is called.
The default value is true in all cases.
Get a value indicating wether
this archive is embedded in another file or not.
Get a value indicating that this archive is a new one.
Gets the comment for the zip file.
Gets the name of this zip file.
Gets the number of entries in this zip file.
The Zip file has been closed.
Get the number of entries contained in this .
Indexer property for ZipEntries
Get / set the to apply to names when updating.
Get /set the buffer size to be used when updating this zip file.
Get a value indicating an update has been started.
Get / set a value indicating how Zip64 Extension usage is determined when adding entries.
Delegate for handling keys/password setting during compresion/decompression.
The kind of update to apply.
Class used to sort updates.
Compares two objects and returns a value indicating whether one is
less than, equal to or greater than the other.
First object to compare
Second object to compare.
Compare result.
Represents a pending update to a Zip file.
Copy an existing entry.
The existing entry to copy.
Get the for this update.
This is the source or original entry.
Get the that will be written to the updated/new file.
Get the command for this update.
Get the filename if any for this update.
Get/set the location of the size patch for this update.
Get /set the location of the crc patch for this update.
Represents a string from a which is stored as an array of bytes.
Initialise a with a string.
The textual string form.
Initialise a using a string in its binary 'raw' form.
Reset the comment to its initial state.
Implicit conversion of comment to a string.
The to convert to a string.
The string value for the comment.
Get the length of the comment when represented as raw bytes.
Get the comment in its 'raw' form as plain bytes.
An is a stream that you can write uncompressed data
to and flush, but cannot read, seek or do anything else to.
Close this stream instance.
Write any buffered data to underlying storage.
Gets a value indicating whether the current stream supports reading.
Gets a value indicating whether the current stream supports writing.
Gets a value indicating whether the current stream supports seeking.
Get the length in bytes of the stream.
Gets or sets the position within the current stream.
A is an
whose data is only a part or subsection of a file.
Initialise a new instance of the class.
The underlying stream to use for IO.
The start of the partial data.
The length of the partial data.
Skip the specified number of input bytes.
The maximum number of input bytes to skip.
The actuial number of input bytes skipped.
Read a byte from this stream.
Returns the byte read or -1 on end of stream.
Close this partial input stream.
The underlying stream is not closed. Close the parent ZipFile class to do that.
Provides a static way to obtain a source of data for an entry.
The
Get a data source.
Returns a to use for compression input.
Represents a source of data that dynamically provide multiple data sources
based on the parameters passed.
Get a data source.
The to get a source for.
The name for data if known.
Returns a to use for compression input.
Default implementation of a
Initialise a new instnace of
The name of the file to obtain data from.
Get a providing data.
Returns a provising data.
Default implementation of
Initialise a default instance of .
Get a providing data for an entry.
The entry to provide data for.
The file name for data if known.
Returns a stream providing data; or null if not available
Defines facilities for data storage when updating Zip Archives.
Get an empty that can be used for temporary output.
Returns a temporary output
Convert a temporary output stream to a final stream.
The resulting final
Make a temporary copy of the original stream.
The to copy.
Returns a temporary output that is a copy of the input.
Return a stream suitable for performing direct updates on the original source.
The current stream.
Returns a stream suitable for direct updating.
This may be the current stream passed.
Dispose of this instance.
Get the to apply during updates.
An abstract suitable for extension by inheritance.
Initializes a new instance of the class.
The update mode.
Gets a temporary output
Returns the temporary output stream.
Converts the temporary to its final form.
Returns a that can be used to read
the final storage for the archive.
Make a temporary copy of a .
The to make a copy of.
Returns a temporary output that is a copy of the input.
Return a stream suitable for performing direct updates on the original source.
Returns a stream suitable for direct updating.
Disposes this instance.
Gets the update mode applicable.
The update mode.
An implementation suitable for hard disks.
Initializes a new instance of the class.
The file.
The update mode.
Initializes a new instance of the class.
The file.
Gets a temporary output for performing updates on.
Returns the temporary output stream.
Converts a temporary to its final form.
Returns a that can be used to read
the final storage for the archive.
Make a temporary copy of a stream.
The to copy.
Returns a temporary output that is a copy of the input.
Return a stream suitable for performing direct updates on the original source.
Returns a stream suitable for direct updating.
Disposes this instance.
An implementation suitable for in memory streams.
Initializes a new instance of the class.
Initializes a new instance of the class.
The to use
This constructor is for testing as memory streams dont really require safe mode.
Gets the temporary output
Returns the temporary output stream.
Converts the temporary to its final form.
Returns a that can be used to read
the final storage for the archive.
Make a temporary copy of the original stream.
The to copy.
Returns a temporary output that is a copy of the input.
Return a stream suitable for performing direct updates on the original source.
Returns a stream suitable for direct updating.
Disposes this instance.
Get the stream returned by if this was in fact called.
This class assists with writing/reading from Zip files.
Initialise an instance of this class.
The name of the file to open.
Initialise a new instance of .
The stream to use.
Write Zip64 end of central directory records (File header and locator).
The number of entries in the central directory.
The size of entries in the central directory.
The offset of the dentral directory.
Write the required records to end the central directory.
The number of entries in the directory.
The size of the entries in the directory.
The start of the central directory.
The archive comment. (This can be null).
Read an unsigned short in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Read an int in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Read a long in little endian byte order.
The value read.
Write an unsigned short in little endian byte order.
The value to write.
Write a ushort in little endian byte order.
The value to write.
Write an int in little endian byte order.
The value to write.
Write a uint in little endian byte order.
The value to write.
Write a long in little endian byte order.
The value to write.
Write a ulong in little endian byte order.
The value to write.
Close the stream.
Get / set a value indicating wether the the underlying stream is owned or not.
If the stream is owned it is closed when this instance is closed.
This is an InflaterInputStream that reads the files baseInputStream an zip archive
one after another. It has a special method to get the zip entry of
the next file. The zip entry contains information about the file name
size, compressed size, Crc, etc.
It includes support for Stored and Deflated entries.
Author of the original java version : Jochen Hoenicke
This sample shows how to read a zip file
using System;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
class MainClass
{
public static void Main(string[] args)
{
using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) {
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null) {
int size = 2048;
byte[] data = new byte[2048];
Console.Write("Show contents (y/n) ?");
if (Console.ReadLine() == "y") {
while (true) {
size = s.Read(data, 0, data.Length);
if (size > 0) {
Console.Write(new ASCIIEncoding().GetString(data, 0, size));
} else {
break;
}
}
}
}
}
}
}
The current reader this instance.
Creates a new Zip input stream, for reading a zip archive.
Advances to the next entry in the archive
The next entry in the archive or null if there are no more entries.
If the previous entry is still open CloseEntry is called.
Input stream is closed
Password is not set, password is invalid, compression method is invalid,
version required to extract is not supported
Read data descriptor at the end of compressed data.
Complete cleanup as the final part of closing.
True if the crc value should be tested
Closes the current zip entry and moves to the next one.
The stream is closed
The Zip stream ends early
Reads a byte from the current zip entry.
The byte or -1 if end of stream is reached.
An i/o error occured.
The deflated stream is corrupted.
Handle attempts to read by throwing an .
The destination array to store data in.
The offset at which data read should be stored.
The maximum number of bytes to read.
Returns the number of bytes actually read.
Handle attempts to read from this entry by throwing an exception
Perform the initial read on an entry which may include
reading encryption headers and setting up inflation.
The destination to fill with data read.
The offset to start reading at.
The maximum number of bytes to read.
The actual number of bytes read.
Read a block of bytes from the stream.
The destination for the bytes.
The index to start storing data.
The number of bytes to attempt to read.
Returns the number of bytes read.
Zero bytes read means end of stream.
Reads a block of bytes from the current zip entry.
The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream.
An i/o error occured.
The deflated stream is corrupted.
The stream is not open.
Closes the zip input stream
Optional password used for encryption when non-null
Gets a value indicating if there is a current entry and it can be decompressed
The entry can only be decompressed if the library supports the zip features required to extract it.
See the ZipEntry Version property for more details.
Returns 1 if there is an entry available
Otherwise returns 0.
Returns the current size that can be read from the current entry if available
Thrown if the entry size is not known.
Thrown if no entry is currently available.
ZipNameTransform transforms names as per the Zip file naming convention.
The use of absolute names is supported although its use is not valid
according to Zip naming conventions, and should not be used if maximum compatability is desired.
Initialize a new instance of
Initialize a new instance of
The string to trim from front of paths if found.
Static constructor.
Transform a directory name according to the Zip file naming conventions.
The directory name to transform.
The transformed name.
Transform a file name according to the Zip file naming conventions.
The file name to transform.
The transformed name.
Test a name to see if it is a valid name for a zip entry.
The name to test.
If true checking is relaxed about windows file names and absolute paths.
Returns true if the name is a valid zip name; false otherwise.
Zip path names are actually in Unix format,
and should only contain relative paths.
This means that any path stored should not contain a drive or
device letter, or a leading slash. All slashes should forward slashes '/'.
An empty name is valid for a file where the input comes from standard input.
A null name is not considered valid.
Test a name to see if it is a valid name for a zip entry.
The name to test.
Returns true if the name is a valid zip name; false otherwise.
Zip path names are actually in unix format,
and should only contain relative paths if a path is present.
This means that the path stored should not contain a drive or
device letter, or a leading slash. All slashes should forward slashes '/'.
An empty name is valid where the input comes from standard input.
A null name is not considered valid.
Get/set the path prefix to be trimmed from paths if present.
This is a DeflaterOutputStream that writes the files into a zip
archive one after another. It has a special method to start a new
zip entry. The zip entries contains information about the file name
size, compressed size, CRC, etc.
It includes support for Stored and Deflated entries.
This class is not thread safe.
Author of the original java version : Jochen Hoenicke
This sample shows how to create a zip file
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip;
class MainClass
{
public static void Main(string[] args)
{
string[] filenames = Directory.GetFiles(args[0]);
byte[] buffer = new byte[4096];
using ( ZipOutputStream s = new ZipOutputStream(File.Create(args[1])) ) {
s.SetLevel(9); // 0 - store only to 9 - means best compression
foreach (string file in filenames) {
ZipEntry entry = new ZipEntry(file);
s.PutNextEntry(entry);
using (FileStream fs = File.OpenRead(file)) {
StreamUtils.Copy(fs, s, buffer);
}
}
}
}
}
Used to track the size of data for an entry during writing.
Offset to be recorded for each entry in the central header.
Creates a new Zip output stream, writing a zip archive.
The output stream to which the archive contents are written.
Set the zip file comment.
The comment string
Encoding of comment is longer than 0xffff bytes.
Sets default compression level. The new level will be activated
immediately.
Level specified is not supported.
Get the current deflate compression level
The current compression level
Write an unsigned short in little endian byte order.
Write an int in little endian byte order.
Write an int in little endian byte order.
Starts a new Zip entry. It automatically closes the previous
entry if present.
All entry elements bar name are optional, but must be correct if present.
If the compression method is stored and the output is not patchable
the compression for that entry is automatically changed to deflate level 0
the entry.
if entry passed is null.
if an I/O error occured.
if stream was finished
Too many entries in the Zip file
Entry name is too long
Finish has already been called
Closes the current entry, updating header and footer information as required
An I/O error occurs.
No entry is active.
Writes the given buffer to the current entry.
Archive size is invalid
No entry is active.
Finishes the stream. This will write the central directory at the
end of the zip file and flush the stream.
This is automatically called when the stream is closed.
An I/O error occurs.
Comment exceeds the maximum length
Entry name exceeds the maximum length
Gets boolean indicating central header has been added for this archive...
No further entries can be added once this has been done.
Get / set a value indicating how Zip64 Extension usage is determined when adding entries.
BiffRec
Biff class
Biff - default constructor
Biff - constructor
FromByteArray
Reads the BIFF record header from the base stream.
The reader.
Writes the BIFF record header to the base stream.
The writer.
Represents a biff8 structure.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
This structure specifies a Unicode string.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
An unsigned integer that specifies the count of characters in the string.
A bit that specifies whether the characters in rgb are double-byte characters.
VALUE | MEANING
0x0 All the characters in the string have a high byte of 0x00 and only the
low bytes are in rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
An array of bytes that specifies the characters. If fHighByte is 0x0, the size of the array
MUST be equal to cch. If fHighByte is 0x1, the size of the array MUST be equal to cch*2.
Gets the text.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
This record specifies the name of a workbook object, a sheet object in the VBA project located
in this file. If this record is in the Globals Substream, the name is for the workbook object.
If this record is in a Chart Sheet Substream, the name is for the chart sheet object representing
the sheet. If this record is in a Macro Sheet Substream, the name is for the macro sheet object
representing the sheet. If this record is in a Dialog Sheet Substream, the name is for the the
dialog sheet object representing the sheet. If this record is in a Worksheet Substream, the name
is for the worksheet object representing the sheet.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
An XLUnicodeString structure that specifies the name used to identify the workbook object or
sheet object in the VBA project embedded in this file. The value of codename.cch MUST be less
than or equal to 31.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
This enumeration specifies the color reference types.
This structure specifies a Unicode string. When an XLUnicodeStringNoCch is used, the count of
characters in the string MUST be specified in the structure that uses the XLUnicodeStringNoCch.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
An unsigned integer that specifies the count of characters in the string.
A bit that specifies whether the characters in rgb are double-byte characters.
VALUE | MEANING
0x0 All the characters in the string have a high byte of 0x00 and only the
low bytes are in rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
An array of bytes that specifies the characters. If fHighByte is 0x0, the size of the array
MUST be equal to cch. If fHighByte is 0x1, the size of the array MUST be equal to cch*2.
Gets the text.
Gets the decoded text.
The decoded text is used by SupBook record.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
This structure specifies a color in conditional formatting records or in a SheetExt record.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
An XColorType that specifies the type of color reference. MUST be different from XCLRNINCHED.
MUST be different from XCLRAUTO unless it is contained in a SheetExt record.
A structure that specifies the color value.
An Xnum that specifies the tint and shade value to be applied to the color. MUST be greater
than or equal to -1.0 and less than or equal to 1.0
Gets the color of this record.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
A structure that specifies a range of cells on the sheet.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
A RwU that specifies the zero-based index of the first row in the range. The value MUST be
less than or equal to rwLast.
A RwU that specifies the zero-based index of the last row in the range. The value MUST be
greater than or equal to rwFirst.
A ColU that specifies the zero-based index of the first column in the range. The value MUST
be less than or equal to colLast, and MUST be less than or equal to 0x00FF.
A ColU that specifies the zero-based index of the last column in the range. The value MUST
be greater than or equal to colFirst, and MUST be less than or equal to 0x00FF.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
ActiveX objects, OLE objects, and drawing objects are displayed in the window that contains the workbook.
Placeholders are displayed in place of ActiveX objects, OLE objects,
and drawing objects in the window that contains the workbook.
ActiveX objects, OLE objects, and drawing objects are not displayed in the window that contains the workbook.
Reads the structure content from a binary stream.
A binary reader.
One-based index into the collection of Font records in this chart sheet substream where the
index is equal to iFont ¨C n, where n is the number of Font records in the globals substream.
Reserved. MUST be 0x0007.
Reserved. MUST be 0x0002.
An unsigned integer that specifies the Windows clipboard format of the data associated with the picture.
0x0002: Specifies the format of the picture is an enhanced metafile.
0x0009: Specifies the format of the picture is a bitmap.
0xFFFF: Specifies the picture is in an unspecified format that is neither enhanced metafile nor a bitmap.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Represents the entry count of the property table.
Represents the property table size in byte.
Properties enumeration inner class.
Creates a new property.
Property identifier
the blip identifier
Value
Creates a new property.
Property identifier
the blip identifier
Value
Property string
Creates a new property.
Property identifier
the blip identifier
Value
MSO array
Returns a that represents the current .
A that represents the current .
Serves as a hash function for a particular type.
A hash code for the current .
Gets the complex data.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
The MSOPATHTYPE Enumeration specifies how the individual pieces of a path SHOULD be interpreted.
The MSOPATHESCAPE Enumeration modifies the path properties by adding elements to a path, providing
additional control, or specifying how to handle editing of POINT data.
This record specifies how a path is constructed. This record is used in conjunction with MSOPATHINFO
and an array of POINT data to build a path.
Reads the structure content from a binary stream.
A binary reader.
Writes the structure content to a binary stream.
A binary reader.
An MSOPATHTYPE enumeration value that specifies how the path is to be drawn. If this field
does not contain an escape value this record is treated as an MSOPATHINFO record.
An MSOPATHESCAPE enumeration value that specifies how path information is interpreted and
segments are joined.
An unsigned integer that specifies the number of segments to process.
The record type is a two-byte unsigned integer that specifies what type of information is
specified by the record and how the structure of the record data specific to this record
is ordered and structured.
Gets the size of the structure in bytes.
This structure specifies a single element of a formula.
0x0000 Axis Group
0x0002 AttachedLabel
0x0004 Axis
0x0005 Chart Group
0x0006
0x0007 Frame
0x0009 Legend
0x000A LegendException
0x000C Series
0x000D Sheet
0x000E DataFormat
0x000F DropBar
YMult Display units labels of the current axis.
Font cache for a given application version.
An extended data label.
The style of the line.
Type of data marker
No Marker
Square Markers
Diamond-shaped Marker
Triangular Marker
Square markers with an X
Square markers with an asterisk
Short bar marker
Long bar marker
Circular marker
Square markers with a plus sign
Auto Generate Marker
Type of TrendLine
Error amount type of the error bars.
Percentage
Fixed value
Standard deviation
Custom values (array of values or range)
Standard error
Specify positioning mode for position information saved in a Pos record.
Relative position to the chart, in points.
Absolute width and height in points; can only be applied to the mdBotRt field of Pos.
Owner of Pos determines how to interpret the position data.
Offset to default position, in 1/1000th of the plot area size.
Relative position to the chart, in SPRC.
This record specifies a layout mode.
Each layout mode specifies a different meaning of the x, y, dx, and dy fields of CrtLayout12 and CrtLayout12A.
Position and dimension are determined by the application. x, y, dx and dy MUST be ignored.
x and y specify the offset of the top left corner, relative to its default position, as a fraction of the chart area.
MUST be greater than or equal to -1.0 and MUST be less than or equal to 1.0.
dx and dy specify the width and height, as a fraction of the chart area,
MUST be greater than or equal to 0.0,
and MUST be less than or equal to 1.0.
x and y specify the offset of the upper-left corner; dx and dy specify the offset of the bottom-right corner.
x, y, dx and dy are specified relative to the upper-left corner of the chart area as a fraction of the chart area.
x, y, dx and dy MUST be greater than or equal to 0.0,
and MUST be less than or equal to 1.0.
The DateUnit enumeration specifies the unit of measurement of a date value.
Time value is measured in days.
Time value is measured in months.
Time value is measured in years.
This structure specifies a color as a combination of red, green, and blue.
1 byte
An unsigned integer that specifies the relative intensity of red.
An unsigned integer that specifies the record type identifier.
An unsigned integer that specifies the record type identifier.
A FrtFlags that specifies attributes for this record.
The value of grbitFrt.fFrtAlert MUST be zero.
A Ref8 that references the range of cells associated with the containing record.
If grbitFrt.fFrtRef is zero then ref8.rwFirst MUST be zero, ref8.rwLast MUST be zero, ref8.colFirst MUST be zero, and ref8.colLast MUST be zero.
This structure specifies a future record type header.
An unsigned integer that specifies the record type identifier.
A FrtFlags that specifies attributes for this record.
The value of grbitFrt.fFrtAlert MUST be zero.
A Ref8 that references the range of cells associated with the containing record.
If rt is Feature11 (0x0872) or Feature12 (0x0878), this field MUST be ignored.
A structure that specifies a range of cells on the sheet.
An unsigned integer that specifies the zero-based row index of a row in the sheet.
specify the first row in the range. The field rwFirst.rw MUST be less than or equal to rwLast
An unsigned integer that specifies the zero-based row index of a row in the sheet.
specify the last row in the range. MUST be greater than or equal to rwFirst.
If rwFirst is 0 and rwLast is 0xFFFF, the specified range includes all the rows in the sheet.
An unsigned integer that specifies the zero-based column index of a column in the sheet.
Specify the first column in the range. MUST be less than or equal to colLast.
An unsigned integer that specifies the zero-based column index of a column in the sheet.
MUST be greater than or equal to colFirst.
If colFirstis 0 and colLast is 0xFF, the specified range includes all the columns in the sheet.
This structure specifies a future record type header.
An unsigned integer that specifies the record type identifier.
MUST be identical to the record type identifier of the containing record.
An FrtFlags that specifies attributes for this record.
The value of grbitFrt.fFrtRef MUST be zero.
The value of grbitFrt.fFrtAlert MUST be zero.
MUST be zero, and MUST be ignored.
This structure specifies a future record type header.
An unsigned integer that specifies the record type identifier.
identify to the record type identifier of the containing record.
An FrtFlags that specifies attributes for this record.
the value of grbitFrt.fFrtRef MUST be zero.
the value of grbitFrt.fFrtAlert MUST be zero.
This structure specifies flags used in future record headers.
A bit that specifies whether the containing record specifies a range of cells.
0 the containing record does not specify a range of cells.
1 the containing record specifies a range of cells.
A bit that specifies whether to alert the user of possible problems
when saving the file without having recognized this record.
Must be 0
Specifies an approximation of a real number,
where the approximation has a fixed number of digits after the radix point.
Value of the real number = Integral + ( Fractional / 65536.0 )
A signed integer that specifies the integral part of the real number.
An unsigned integer that specifies the fractional part of the real number.
Value of the real number = Integral + ( Fractional / 65536.0 )
This structure specifies a Font record in the file.
2 bytes. An unsigned integer.
If this value is less than 4, then specify a zero-based index of a Font record in the collection of Font records in the globals SubStream.
If this value is greater than 4, then specify a one-based index of a Font record in the collection of Font records in the globals SubStream.
MUST NOT equal 4, and MUST be less than or equal to 1022.
This structure specifies a font entry used by the FrtFontList record.
A bit. 15 bits reserved.
Specify whether the fonts are scaled.
Value Meaning
0x0 Font has fixed size.
0x1 Font scales with chart area in a chart or plot area.
2 bytes
A FontIndex that specifies the font used by the FrtFontList record.
This structure specifies a formula used in a chart.
An unsigned integer that specifies the length of rgce in bytes.
An RGCE that specifies the sequence of PTGs for the formula.
A chain of structures that specifies a group of additional properties or property overrides for a given chart element, specified by the xmltkParent field.
See meanings of the additional properties or property overrides in each token structure.
An unsigned integer that specifies the chain version.
MUST be 0.
An unsigned integer that specifies the chart element targeted by the token structures in the chain.
MUST be a value from the following table:
Value | Meaning
0x0001 The record that contains this structure MUST be in a sequnce of that conforms to the DVAXIS rule.
0x0002 The record that contains this structure MUST be in a sequence of records that conforms to the the CHARTSHEET or CHARTSHEETCONTENT rule.
0x0004 The record that contains this structure MUST be in a sequence of records that conforms to the IVAXIS rule and SERIESAXIS rule.
...
A chain of structures that specifies the additional properties or property overrides for a given chart element, specified by the xmltkParent field.
The token sequence ABNF for each xmltkParent is specified according to the following table:
xmltkParent | ABNF
0x0001 chainRecords = [XmlTkMaxFrt] [XmlTkMinFrt] [XmlTkLogBaseFrt]
0x0002 chainRecords = [XmlTkStyle] [XmlTkThemeOverride] [XmlTkColorMappingOverride]
0x0004 chainRecords = [XmlTkNoMultiLvlLbl] [XmlTkTickLabelSkipFrt] [XmlTkTickMarkSkipFrt] [XmlTkMajorUnitFrt] [XmlTkMinorUnitFrt] [XmlTkTickLabelPositionFrt] [XmlTkBaseTimeUnitFrt] [XmlTkFormatCodeFrt] [XmlTkMajorUnitTypeFrt] [XmlTkMinorUnitTypeFrt]
0x0005 chainRecords = [XmlTkShowDLblsOverMax] [XmlTkBackWallThicknessFrt] [XmlTkFloorThicknessFrt] [XmlTkDispBlanksAsFrt] [SURFACE]
SURFACE = XmlTkStartSurface [XmlTkFormatCodeFrt [XmlTkSpb]] [XmlTkTpb] XmlTkEndSurface
0x000F chainRecords = [XmlTkOverlay]
0x0013 chainRecords = [XmlTkSymbolFrt]
0x0016 chainRecords = [XmlTkPieComboFrom12Frt]
0x0019 chainRecords = [XmlTkOverlay]
0x0037 chainRecords = [XmlTkRAngAxOffFrt] [XmlTkPerspectiveFrt] [XmlTkRotYFrt] [XmlTkRotXFrt] [XmlTkHeightPercent]
Specify formatting information for a text run.
Specify the zero-based index of the first character of the text that contains the text run.
When this record is used in an array, this value MUST be in strictly increasing order.
A FontIndex record that specifies the font.
If ich is equal to the length of the text, this record is undefined and MUST be ignored.
Specify a Unicode string.
Specifies the count of characters in the string.
MUST be equal to the number of characters in st.
An optional XLUnicodeStringNoCch that specifies the string.
MUST exist if and only if cch is greater than zero.
This structure specifies a cell in the current sheet.
A Row that specifies the row.
A Col that specifies the column.
Specify a zero-based index of a cell XF record in the collection of XF records in the globals substream.
This structure specifies either a Boolean value or an error value.
Specify either a Boolean value or an error value, depending on the value of fError.
Value | Meaning
0x00 #NULL!
0x07 #DIV/0!
0x0F #VALUE!
0x17 #REF!
0x1D #NAME?
0x24 #NUM!
0x2A #N/A
0x2B #GETTING_DATA
A Boolean that specifies whether bBoolErr contains an error code or a Boolean value.
An error value MUST be a value from the following table:
Value | Meaning
0x00 False
0x01 True
This record specifies the beginning of a collection of records as defined by the Chart Sheet SubStream ABNF.
This record specifies the end of a collection of records as defined by the Chart Sheet SubStream ABNF.
ID Number
0x854 2132
This record specifies beginning of a collection of Future Record Type records as
defined by the Chart Sheet SubStream ABNF.
4 bytes
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0854.
2 bytes
An unsigned integer that specifies the kind of object that is encompassed by the block.
2 bytes
An unsigned integer that specifies the object context.
MUST be 0x0000.
2 bytes
An unsigned integer that specifies additional information about the context of the object,
along with iObjectContext, iObjectInstance2 and iObjectKind.
This field MUST equal 0x0000 if iObjectKind equals 0x0010 or 0x0012.
MUST be a value from the following table if iObjectKind equals 0x0011:
2 bytes
An unsigned integer that specifies more information about the object context,
along with iObjectContext, iObjectInstance1 and iObjectKind.
This field MUST equal 0x0000.
ID Number
0x855 2133
This record specifies properties of an Future Record Type (FRT) as
defined by the Chart Sheet SubStream ABNF.
4 bytes
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0855.
2 bytes
An unsigned integer that specifies the type of object that is encompassed by the block.
MUST equal the iObjectKind field of the associated StartObject record.
2 bytes
Undefined and MUST be ignored.
2 bytes
Undefined and MUST be ignored.
2 bytes
Undefined and MUST be ignored.
This record specifies the beginning of a collection of records.
4 bytes
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0852.
2 bytes
An unsigned integer that specifies the type of object that is encompassed by the block.
2 bytes
An unsigned integer that specifies the context of the object.
This value further specifies the object specified in iObjectKind.
MUST be a value from the table Page 416 Ms-XLS.
2 bytes
An unsigned integer that specifies additional information about the context of the object,
along with iObjectContext, iObjectInstance2 and iObjectKind.
MUST equal one of the values as specified in the previous table under the iObjectContext field.
2 bytes
An unsigned integer that specifies more information about the object context,
along with iObjectContext, iObjectInstance1 and iObjectKind.
MUST equal one of the values as specified in the previous table under the iObjectContext field.
This record specifies the end of a collection of records.
4 bytes
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0853.
2 bytes
An unsigned integer that specifies the type of object that is encompassed by the block.
2 bytes
Undefined and MUST be ignored.
2 bytes
Undefined and MUST be ignored.
2 bytes
Undefined and MUST be ignored.
134
An unsigned integer that specifies the size of this record in bytes.
This structure specifies a color in the color table.
MUST be greater than or equal to 0x08 and less than or equal to 0x3F, as specified in the color table for Icv.
If the tab has no color assigned to it, the value of this field MUST be 0x7F, and MUST be ignored.
B bit
D bit
size of srcName + size of stFileDest + size of stDivId + size of stTitle + size of crtID + size of frtRGB + size of unused3
Must be greater than 0
(optional)
This record specifies a picture used by a sheet header or footer.
This record specifies the page format settings used to print the current sheet.
This record specifies the printed size of the chart.
Skip the Record
ID Number
0x1060 4192
Specify font information at the time the scalable font is added to the chart.
2 bytes
An unsigned integer that specifies the font width, in twips, when the font was first applied.
MUST be greater than or equal to 0 and less than or equal to 0x7FFF(32767).
2 bytes
An unsigned integer that specifies the font height, in twips, when the font was first applied.
MUST be greater than or equal to 0 and less than or equal to 0x7FFF(32767).
2 bytes
An unsigned integer that specifies the default font height in twips.
MUST be greater than or equal to 20 and less than or equal to 8180.
2 bytes
A Boolean that specifies the scale to use. The value must be as followed:
true: 0x0000 scale by chart area
false: 0x0001 scale by plot area
2 bytes
A FontIndex that specifies the font.
MUST be used when ifnt is less than or equal to 255.
ID Number
0x1068 4200
Specify font information at the time the scalable font is added to the chart.
2 bytes
An unsigned integer that specifies the font width, in twips, when the font was first applied.
MUST be greater than or equal to 0 and less than or equal to 0x7FFF(32767).
2 bytes
An unsigned integer that specifies the font height, in twips, when the font was first applied.
MUST be greater than or equal to 0 and less than or equal to 0x7FFF(32767).
2 bytes
An unsigned integer that specifies the default font height in twips.
MUST be greater than or equal to 20 and less than or equal to 8180.
2 bytes
A Boolean that specifies the scale to use.
true: 0x0000 scale by chart area
false: 0x0001 scale by plot area
2 bytes
A FontIndex that specifies the font.
MUST be used when ifnt is greater than 255.
ID Number
0x105C 4188
Specify a custom color palette for a chart Sheet.
2 bytes
A signed integer that specifies the number of colors in the rgColor array.
MUST be 3.
An array of LongRGB.
specify the colors of the color palette.
0 Foreground color it specifies the system window text color.
1 Background color it specifies the system window color
2 Neutral color it must be black.
ID Number
0x92
This record specifies a custom color palette.
Palette specifies properties of the color palettes used in the chart sheet.
2 bytes
A signed integer that specifies the number of colors in the rgColor array.
MUST be 56.
variable
An array of LongRGB that specifies the colors of the color palette.
ID Number
0x858 2136
this record specifies the name of the source PivotTable view associated with a pivot chart.
2 bytes
An unsigned integer.
MUST be 0x0858.
2 bytes
Undefined, and MUST be ignored.
2 bytes
MUST be zero and MUST be ignored.
1 byte
An unsigned integer that specifies the count of characters of the stPivotTable field.
An XLUnicodeStringNoCch non-null-terminated, case-sensitive Unicode string
that specifies the name of the PivotTable view associated with the pivot chart.
The size of this field in bytes MUST be cch.
ID Number
0x859 2137
This record specifies the flags applicable to a Pivot Chart.
2 bytes
An unsigned integer that specifies the FRT record type.
MUST be 0x0859.
2 bytes
Undefined, and MUST be ignored.
1 bit
A bit that specifies whether to hide the pivot field captions in the Pivot Chart.
reserved 15 bits
2 bytes
MUST be zero and MUST be ignored.
2 bytes
MUST be zero and MUST be ignored.
2 bytes
MUST be zero and MUST be ignored.
ID Number
0x1048 4168
This record specifies the location of a PivotTable view referenced by a chart.
8 bytes
A Ref8U that specifies the location of a PivotTable view referenced by a chart.
MsoDrawingGroup
MsoDrawing
If this record appears in chart sheet SubStream,
The OfficeArtClientAnchor structure mentioned in [MS-OFFDRAW] refers to OfficeArtClientAnchorChart.
This record specifies selected drawing objects and the drawing objects in focus on the sheet.
This record MUST be zero, and MUST be ignored.
MUST be zero, and MUST be ignored.
ID Number
0x1002 4098
position and size of the chart area
the beginning of a collection of records as defined by the Chart Sheet SubStream ABNF.
4 bytes
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the horizontal position of the upper-left corner of the chart in points.
4 bytes
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the vertical position of the upper-left corner of the chart in points.
4 bytes
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the width in points.
4 bytes
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the height in points.
ID Number
0x85A 2138
Specify font information used on the chart
Specify beginning of a collection of Font records as defined by the Chart Sheet SubStream ABNF.
4 bytes
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x085A.
1 byte: An unsigned integer
Specify the application version where new chart elements were introduced that use the font information specified by rgFontInfo.
MUST be equal to iObjectInstance1 of the StartObject record that follows this record as defined by the Chart Sheet SubStream ABNF.
Value Meaning
0x09 rgFontInfo specifies the font information that is used by display units labels specified by YMult.
0x0A rgFontInfo specifies the font information that is used by extended data label specified by DataLabExt.
1 byte
MUST be zero, and MUST be ignored.
2 bytes
An unsigned integer that specifies the number of items in rgFontInfo.
An array of FontInfo structures that specify the font information.
The number of elements in this array MUST be equal to the value specified in cFont.
ID Number
OxA0 160
This record specifies the zoom level of the current view in the window used to display the sheet as a fraction given by the following formula:
Fraction = nscl / dscl
The fraction MUST be greater than or equal to 1/10 and less than or equal to 4.
This record MUST exist if the zoom level of the current view is not equal to 1.
A signed integer that specifies the numerator of the fraction.
The value MUST be greater than or equal to 1.
A signed integer that specifies the denominator of the fraction.
The value MUST be greater than or equal to 1.
Fraction = nscl / dscl
The fraction MUST be greater than or equal to 1/10 and less than or equal to 4.
ID Number
0x1064 4196
This record specifies the scale factors to use when calculating the font scaling information for a font in the plot area.
If no FBI record exists in the chart sheet where scab is 0x0001, this record is unused and MUST be ignored.
Otherwise the values from each FBI record where scab is 0x0001 are used in conjunction with values in this record to render the scaled fonts in the plot area.
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the horizontal growth (in points) of the plot area for font scaling.
A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6
Specify the vertical growth (in points) of the plot area for font scaling.
ID Number
0x1032 4146
This record specifies the type, size and position of the frame around a chart element as defined by the Chart Sheet SubStream ABNF.
An unsigned integer that specifies the type of frame to be drawn.
Must be a value from the following table:
Value FrameType
0x0000 A frame surrounding the chart element.
0x0004 A frame with a shadow surrounding the chart element.
A bit that specifies if the size of the frame is automatically calculated.
If the value is 1, the size of the frame is automatically calculated.
In this case, the width and height specified by the chart element are ignored and the size of the frame is calculated automatically.
If the value is 0, the width and height specified by the chart element are used as the size of the frame
A bit that specifies if the position of the frame is automatically calculated.
If the value is 1, the position of the frame is automatically calculated.
In this case, the (x, y) specified by the chart element are ignored, and the position of the frame is automatically calculated.
If the value is 0, the (x, y) location specified by the chart element are used as the position of the frame.
ID Number
0x1007 4103
This record specifies the appearance of a line.
4 bytes
A LongRGB that specifies the color of the line.
The color MUST match the color specified by icv.
2 bytes
An unsigned integer that specifies the style of the line.
MUST be a value from the following table:
Value Meaning
0x0000 Solid
0x0001 Dash
0x0002 Dot
0x0003 Dash-dot
0x0004 Dash dot-dot
0x0005 None
0x0006 Dark gray pattern
0x0007 Medium gray pattern
0x0008 Light gray pattern
the value this field is 0x0005 (None),
the values of we and icv MUST be set to the values in the following table:
Attribute Default Value
Line thickness (we) 0xFFFF (Hairline)
Line color (icv) 0x004D
2 bytes
A signed integer that specifies the thickness of the line.
MUST be a value from the following table:
Value Meaning
0xFFFF (-1) Hairline
0x0000 Narrow (single)
0x0001 Medium (double)
0x0002 Wide (triple)
A bit that specifies whether the line has default formatting.
If the value of fAuto is 0, the line has formatting as specified by lns, we, and icv.
If the value of fAuto is 1, lns, we, icv, and rgb MUST be ignored and default values
Attribute Default Value
Line pattern(lns) 0xFFFF(HairLine)
Line thickness(we) 0x0000(Narrow)
Line color(icv) 0x004D
Line color(rgb) Match default color used for icv
A bit that specifies whether the axis line is displayed.
If the previous record is AxisLine and the value of the id field of the AxisLine record is equal to 0x0000,
this field MUST be a value from the following table:
fAxisOn Lns Meaning
0 0x0005 The axis line is not displayed.
0 Any legal value except 0x0005 The axis line is displayed.
1 Any legal value The axis line is displayed.
A bit that specifies whether icv equals 0x004D.
If the value is 1, icv MUST equal 0x004D. If the value is 0, icv MUST NOT equal 0x004D.
An IcvChart that specifies the color of the line.
The color MUST match the color specified by rgb.
ID Number
0x100A 4106
This record specifies the patterns and colors used in a filled region of a chart.
A LongRGB that specifies the foreground color of the fill pattern.
A LongRGB that specifies the background color of the fill pattern.
An unsigned integer that specifies the type of fill pattern.
The default value of this field is 0x0001. fls MUST be a value from the following table:
Value | Meaning
0x0000 The fill pattern is none (no fill). When rgbFore or rgbBack are specified, a pattern of "none" overrides and there is no fill.
0x0001 The fill pattern is solid. When solid is specified, rgbFore is the only color rendered, even when rgbBack is also specified.
0x0002 The fill pattern is medium gray.Additional properties in the corresponding GelFrame record.
0x0003 The fill pattern is dark gray. Additional properties in the corresponding GelFrame record.
0x0004 The fill pattern is light gray. Additional properties in the corresponding GelFrame record
0x0005 The fill pattern is horizontal stripes. Additional properties in the corresponding GelFrame record.
0x0006 The fill pattern is horizontal stripes. Additional properties in the corresponding GelFrame record
0x0007 The fill pattern is downward diagonal stripes. Additional properties in the corresponding GelFrame record
0x0008 The fill pattern is upward diagonal stripes. Additional properties in the corresponding GelFrame record
0x0009 The fill pattern is grid. Additional properties in the corresponding GelFrame record
0x000A The fill pattern is trellis. Additional properties in the corresponding GelFrame record
0x000B The fill pattern is light horizontal stripes. Additional properties in the corresponding GelFrame record
0x000C The fill pattern is light vertical stripes. Additional properties in the corresponding GelFrame record
0x000D The fill pattern is light down. Additional properties in the corresponding GelFrame record
0x000E The fill pattern is light up. Additional properties in the corresponding GelFrame record
0x000F The fill pattern is light grid. Additional properties in the corresponding GelFrame record
0x0010 The fill pattern is light trellis. Additional properties in the corresponding GelFrame record
0x0011 The fill pattern is grayscale of 0.125 (1/8) value. Additional properties in the corresponding GelFrame record
0x0012 The fill pattern is grayscale of 0.0625 (1/16) value. Additional properties in the corresponding GelFrame record
A bit that specifies whether the fill colors are automatically set.
If fls equals 0x0001 formatting is automatic.
The default value of this field is 1.
A bit that specifies whether the foreground and background are swapped when the data value of the filled area is negative.
The default value of this field is 0.
An IcvChart that specifies the foreground color of the fill pattern.
An IcvChart that specifies the background color of the fill pattern.
The default value of this field is 0x0009.
ID Number
0x1066 4198
This record specifies the properties of a fill pattern for parts of a chart.
Page 299 in MS-XLS
Specify the primary properties of the fill pattern.
Specify the additional properties of the fill pattern.
A binary stream that specifies the structure data. The number of bytes in this stream MUST be less than 8225.
ID Number
0x103C 4156
This record specifies the layout of a picture attached to a picture-filled chart element.
An unsigned integer that specifies the picture layout.
If it is not located in sequence of records that conform to the SS rule,this field MUST be 0x0001.
If it is located in sequence of records that conform to the SS rule,it MUST be a value from following table:
value Meaning
0x0001 Stretched. The picture is scaled to fit within the dimensions of the filled areas of the chart element.
0x0002 Stacked. The pictures in the data points are stacked on top of each other in the direction of the value axis.
0x0003 Stacked and scaled. The pictures in the data points are stacked next to or on top of each other, and each picture is scaled to fit in the number of units on the value axis as specified by numScale.
A bit that specifies whether the picture covers the top and bottom fill areas of the data points.
If a Chart3d record does not exist or if this record is not in an SS rule
or if this record is in an SS rule that contains a Chart3DBarShape with the riser field equal to 0x01, this field MUST be 1.
A bit that specifies whether the picture covers the front and back fill areas of the data points on a bar or column chart group.
If a Chart3d record does not exist, or if this record is not in an SS rule
or if this record is in an SS rule that contains a Chart3DBarShape with the riser field equal to 0x01, this field MUST be 1.
A bit that specifies whether the picture covers the side fill areas of the data points on a bar or column chart group.
If a Chart3d record does not exist, or if this record is not in an SS rule
or if this record is in an SS rule that contains a Chart3DBarShape with the riser field equal to 0x01, this field MUST be 1.
Specify the number of units on the value axis in which to fit the entire picture.
The picture is scaled to fit within this number of units.
If the value of ptyp is not 0x0003, this field is undefined and MUST be ignored.
ID Number
0x8A4 2212
This record specifies the shape formatting properties for chart elements.
Page 405
An FrtHeader.
The frtHeader.rt field of the field MUST be 0x08A4.
Specifies the chart element that the shape formatting properties in this record apply to.
If this record is in a sequence of records that specifies an AXS rule then it MUST be a value from the following table:
Value | Meaning
0x0000 The shape properties in this record apply to the axis.
0x0001 The shape properties in this record apply to the major gridlines of the axis.
0x0002 The shape properties in this record apply to the minor gridlines of the axis.
0x0003 The shape properties in this record apply to the 3D surfaces of the walls or floor.
If this record precedes an End record matched by a Begin record in a sequence of records that conforms to the CRT rule then this field MUST be a value from the following table:
Value | Meaning
0x0000 The shape properties in this record apply to the drop lines of the chart group.
0x0001 The shape properties in this record apply to the high-low lines of the chart group.
0x0002 The shape properties in this record apply to the leader lines of the chart group.
0x0003 The shape properties in this record apply to the series lines of the chart group.
Specify the checksum of the shape formatting properties related to this record.
The algorithm used to calculate the checksum is defined by [MS-OSHARED] section 2.4.3.2.
When reading this record, the checksum is calculated as previously specified and compared to the dwChecksum value stored in this record.
If the calculated checksum does not match the dwChecksum value, the application MUST assume that the XML stream is out of date,
and the data from the LineFormat, AreaFormat, MarkerFormat and GelFrame records MUST be used instead of the data specified by the XML stream.
An unsigned integer that specifies the length of the character array in the rgb field.
An array of ANSI characters, whose length is specified by cb,
that contains the XML representation of the shape formatting properties
ID Number
0x87F 2131
This record specifies a continuation of the data in a preceding Future Record Type record that has data longer than 8,224 bytes.
An FrtRefHeader.
The frtRefHeader.rt field MUST be 0x087F.
If frtRefHeader.grbitFrt.fFrtRef is 1 then the frtRefHeader.ref8 MUST refer to the range of cells associated with this record.
If frtRefHeader.grbitFrt.fFrtRef is 0 then all of the fields of the frtRefHeader.ref8 structure MUST be zero and MUST be ignored.
A binary stream that specifies the record data.
The number of bytes in this stream MUST be less than 8,213.
This record specifies properties of the data for a series, a trendline, or error bars.
Specify the type of data in categories (3), or horizontal values on bubble and scatter chart groups, in the series.
MUST be a value from the following table.
Value | Meaning
0x0001 The series contains categories (3), or horizontal values on bubble and scatter chart groups, with numeric information.
0x0003 The series contains categories (3), or horizontal values on bubble and scatter chart groups, with text information.
Specify that the values, or vertical values on bubble and scatter chart groups, in the series contain numeric information.
It MUST be 0x0001, and MUST be ignored.
Specify the count of categories (3), or horizontal values on bubble and scatter chart groups, in the series.
The value MUST be less than or equal to 32767.
Specify the count of values, or vertical values on bubble and scatter chart groups, in the series.
The value MUST be less than or equal to 32767.
Specify that the bubble size values in the series contain numeric information.
The value MUST be 0x0001, and MUST be ignored.
Specify the count of bubble size values in the series.
The value MUST be less than or equal to 32767.
ID Number
0x1051 4177
This record specifies a reference to data in a sheet that is used by a part of a series, legend entry, trendline or error bars.
An unsigned integer that specifies the part of the series, trendline, or error bars the referenced data specifies.
MUST be a value from the following table
Value | Meaning
0x00 Referenced data specifies the series, legend entry, or trendline name. Error bars name MUST be empty.
0x01 Referenced data specifies the values or horizontal values on bubble and scatter chart groups of the series and error bars.
0x02 Referenced data specifies the categories or vertical values on bubble and scatter chart groups of the series and error bars.
0x03 Referenced data specifies the bubble size values of the series.
An unsigned integer that specifies the type of data that is being referenced.
MUST be a value from the following table:
Value | Meaning
0x00 The data source is a category (3) name, series name or bubble size that was automatically generated.
0x01 The data source is the text or value as specified by the formula field.
0x02 The data source is the value from a range of cells in a sheet specified by the formula field.
A bit that specifies whether the part of the chart specified by the id field uses number formatting from the referenced data.
MUST be a value from the following table:
Value | Meaning
0x0 The data uses the number formatting of the referenced data.
0x1 The data uses the custom number formatting specified in the ifmt field.
An IFmt that specifies the number format to use for the data.
A ChartParsedFormula that specifies the formula that specifies the reference.
ID Number
0x100D 4109
Specify the text for a series, TrendLine name, TrendLine label, Axis Title or Chart title.
A ShortXLUnicodeString that specifies the text string.
ID Number
0x1006 4102
Specify the data point or series that the formatting information
Specify the zero-based index of the data point within the series specified by yi.
If this value is 0xFFFF, the formatting information that follows applies to the series.
OtherWise, the formatting information that follows applies to a data point.
Specify the zero-based index of a series record in the collection of Series records in this chart sheet SubStream.
Details on Page 241 in MS_XLS
Specify properties of the data series, trendline or error bar, depending on the type of records
ID Number
0x105F 4191
Specify the shape of the data points in a bar or column chart group.
It is used for a bar or column chart group and MUST be ignored for all other chart groups.
Specify the shape of the base of the data points in a bar or column chart group.
Value | Meaning
0x00 The base of the data point is a rectangle.
0x01 The base of the data point is an ellipse.
specify how the data points in a bar or column chart group taper from base to tip.
Value | Meaning
0x00 The data points of the bar or column chart group do not taper. The shape at the maximum value of the data point is the same as the shape at the base.
0x01 The data points of the bar or column chart group taper to a point at the maximum value of each data point.
0x02 The data points of the bar or column chart group taper towards a projected point at the position of the maximum value of all of the data points in the chart group, but are clipped at the value of each data point.
ID Number
0x100B 4107
Specify the distance of a data point or data points in a series from the center of one of the following:
1: plot area for a doughnut or pie chart group.
2: primary pie in a pie of pie or bar of pie chart group.
3: secondary bar/pie of a pie of pie chart group.
Specify the distance of a data point or data points in a series
ID Number
0x105D 4189
specify properties of the associated data points, data markers, or lines of the series.
A bit that specifies whether the lines of the series are displayed with a smooth line effect on a scatter, radar, and line chart group.
Default value of this field is 0.
A bit that specifies whether the data points of a bubble chart group are displayed with a 3-D effect.
MUST be ignored for all other chart groups.
Default value of this field is 0.
A bit that specifies whether the data markers are displayed with a shadow on bubble, scatter, radar, stock, and line chart groups.
Default value of this field is 0.
ID Number
0x1009 4105
Specify the color, size, and shape of the associated data markers that appear on line, radar, and scatter chart groups.
The Default Base Color Index in Chart Color Table
Specify the type of data marker.
A bit that specifies whether the data marker is automatically generated.
Value | Meaning
0x0 The data marker is not automatically generated.
0x1 The data marker type, size, and color are automatically generated and the values are set accordingly in this record.
Specify whether to show the data marker interior.
Value | Meaning
0x0 The data marker is not automatically generated.
0x1 The data marker type, size, and color are automatically generated and the values are set accordingly in this record.
specifies whether to show the data marker border.
Value | Meaning
0x0 The data marker border is shown
0x1 The data marker border is not shown.
An IcvChart that specifies the border color of the data marker.
If Color is empty, the color is automatically selected from the next available color in the chart color table.
An IcvChart that specifies the interior color of the data marker.
The default value of this field is the same as the default value for rgbFore only when the default imk is 0x0001,
0x0002, 0x0003, or 0x0008. Otherwise, the default value is 0xFFFFFF.
Set BackColor when MarkType is 0x0001, 0x0002, 0x0003, or 0x0008.
An unsigned integer that specifies the size in twips of the data marker.
the border color of the data marker.
The default value of this field is automatically selected from the next available color in the chart color table.
the interior color of the data marker.
The default value of this field is the same as the default value for rgbFore only when the default imk is 0x0001,
0x0002, 0x0003, or 0x0008. Otherwise, the default value is 0xFFFFFF.
ID NumBer
0x100C 4108
Specify properties of a data label on a chart group, series, or data point.
A Bit
A bit that specifies whether the value, or the vertical value on bubble or scatter chart groups,
is displayed in the data label.
1 display.
B Bit
A bit that specifies whether the value, represented as a percentage of the sum of the values of the series the data label is associated with, is displayed in the data label.
C Bit
A bit that specifies whether the category (3) name and value, represented as a percentage of the sum of the values of the series the data label is associated with, are displayed in the data label.
E Bit
A bit that specifies whether the category (3), or the horizontal value on bubble
or scatter chart groups, is displayed in the data label on a non-area chart group,
or the series name is displayed in the data label on an area chart group.
F Bit
A bit that specifies whether the bubble size is displayed in the data label.
G Bit
A bit that specifies whether the data label contains the name of the series.
If the current record is contained in a chart group and fShowLabelAndPerc, fShowPercent, fShowValue, fShowValue, fShowLabel, or fShowBubbleSizes equal 1 then this MUST equal to 0.
ID Number
0x89E 2206
Specify additional properties for chart elements, as specified by the Chart Sheet SubStream ABNF.
These properties complement the record to which they correspond, and are stored as a structure chain defined in XmlTkChain.
An FrtHeader.
The frtHeader field MUST be 0x089E.
An unsigned integer that specifies the size, in bytes, of the XmlTkChain structure starting in the xmltkChain field,
including the data contained in the optional CrtMlFrtContinue records.
MUST be less than or equal to 0x7FFFFFEB
An XmlTkChain structure that specifies a chain of structures.
The size of the XmlTkChain is specified by the cb field.
ID Number
0x89F 2207
Specifies additional data for a CrtMlFrt record, as specified in the CrtMlFrt record.
An XmlTkChain structure that specifies a chain of structures.
The size of the XmlTkChain is specified by the cb field.
ID Number
0x1045 4165
This record specifies the chart group for the current series.
An unsigned integer that specifies the zero-based index of a ChartFormat record in the collection of ChartFormat records in the current chart sheet SubStream.
ID Number
0x104A 4170
This record specifies the series to which the current trendline or error bar corresponds.
An unsigned integer that specifies the one-based index of a Series record in the collection of Series records in the current chart sheet substream.
ID Number
0x104B 4171
This record specifies a trendline.
An unsigned integer that specifies the type of trendline.
The value MUST be one of the following values:
Value | Meaning
0x00 Polynomial
0x01 Exponential
0x02 Logarithmic
0x03 Power
0x04 Moving average
An unsigned integer that specifies the polynomial order or moving average period.
MUST be greater than or equal to 0x02 and less than or equal to 0x06 if regt equals 0x00;
MUST be greater than or equal to 0x02 and less than or equal to the value of the cValx field of the Series record specified by the preceding SerParent record minus one if regt equals 0x04.
MUST be ignored for trendlines of all other types.
A ChartNumNillable that specifies where the trendline intersects the value axis or vertical axis on bubble and scatter chart groups.
If no intercept is specified, this ChartNumNillable MUST specify a NilChartNum, and the value of the type field in the NilChartNum structure MUST be 0x0100.
A Boolean that specifies whether the trendline equation is displayed in the trendline label.
Must be ignored if regt equals 0x04.
Must be ignored if Chart Sheet contains an attached label rule with an objectLink.
A Boolean that specifies whether the R-squared value is displayed in the trendline label.
Must be ignored if regt equals 0x04.
Must be ignored if Chart Sheet contains an attached label rule with an objectLink.
An Xnum that specifies the number of periods to forecast forward.
An Xnum that specifies the number of periods to forecast backward.
ID Number
0x105B 4187
This record specifies properties of an error bar.
Specify the direction of the error bars.
MUST be a value from the following table.
Value | Meaning
0x01 Error bars are horizontal in the plus direction
0x02 Error bars are horizontal in the minus direction
0x03 Error bars are vertical in the plus direction
0x04 Error bars are vertical in the minus direction
Specify the error amount type of the error bars.
MUST be a value from the following table.
Value | Meaning
0x01 Percentage
0x02 Fixed value
0x03 Standard deviation
0x04 Custom values (array of values or range)
0x05 Standard error
A Boolean that specifies whether the error bars are T-shaped.
An Xnum that specifies the fixed value, percentage, or number of standard deviations for the error bars.
If ebsrc equals 0x05 or 0x04, MUST be ignored.
Specify the number of value or cell references used for custom error bars when ebsrc equals 0x04.
MUST be ignored if ebsrc does not equal 0x04.
An unsigned integer that specifies the legend entry.
A Bit
A bit that specifies whether the legend entry specified by iss has been deleted.
B Bit
A bit that specifies whether the legend entry specified by iss has been formatted.
If this field is 1, there must be a sequence of records that conform to the ATTACHEDLABEL rule in the Chart Sheet SubStream ABNF following this record.
ID Number
0x1025 4133
This record specifies the properties of an attached label
An unsigned integer that specifies the horizontal alignment of the text.
MUST be a value from the following table:
Value | Alignment
0x01 Left-alignment if iReadingOrder specifies left-to-right reading order; otherwise, right-alignment
0x02 Center-alignment
0x03 Right-alignment if iReadingOrder specifies left-to-right reading order; otherwise, left-alignment
0x04 Justify-alignment
0x07 Distributed alignment
An unsigned integer that specifies the vertical alignment of the text.
MUST be a value from the following table:
Value | Alignment
0x01 Top-alignment
0x02 Center-alignment
0x03 Bottom-alignment
0x04 Justify-alignment
0x07 Distributed alignment
Specify the display mode of the background of the text.
MUST be a value from the following table:
Value | Background Mode
0x0001 Transparent background
0x0002 Opaque background
A LongRGB structure that specifies the color of the text.
Specify the horizontal position of the text, relative to the upper-left of the chart area in SPRC.
MUST be ignored when this record is preceded by a DefaultText record or is followed by a Pos record.
Specify the vertical position of the text, relative to the upper-left of the chart area in SPRC.
MUST be ignored when this record is preceded by a DefaultText record or is followed by a Pos record.
Specify the horizontal size of the text, relative to the chart area in SPRC.
MUST be ignored when this record is followed by a Pos record.
Specify the vertical size of the text, relative to the chart area in SPRC.
MUST be ignored when this record is followed by a Pos record.
A Bit
A bit that specifies whether the foreground text color is determined automatically.
B Bits
A bit that specifies whether the text is attached to a legend key.
C Bit 4
A bit that specifies whether the value, or the vertical value on bubble or scatter chart groups, is displayed in the data label.
E Bit 16
A bit that specifies whether the text value of this text field is automatically generated and unchanged.
F Bit 32
A bit that specifies whether the properties of this text field are automatically generated and unchanged.
G Bit 64
A bit that specifies whether this data label has been deleted by the user.
H Bits 128
A bit that specifies whether the background color is determined automatically.
J Bit 2048
A bit that specifies whether the category (3) name and the value, represented as a percentage of the sum of the values of the series the data label is associated with, are displayed in the data label.
K Bit 4096
A bit that specifies whether the value, represented as a percentage of the sum of the values of the series the data label is associated with, is displayed in the data label.
L Bit 8192
A bit that specifies whether the bubble size is displayed in the data label.
M Bit 16384
A bit that specifies whether the category (3),
or the horizontal value on bubble or scatter chart groups, is displayed in the data label on a non-area chart group,
or the series name is displayed in the data label on an area chart group.
An icv structure that specifies the color of the text.
4 Bits
Specify the data label positioning of the text, relative to the graph object item the text is attached to.
Data Label Position | Value | Value for Chart Group Type
Auto 0x0 Pie chart group
Right 0x0 Line, Bubble or Scatter chart group
OutSide 0x0 Bar or Column chart group with fStacked equal to 0
OutSide End 0x0 Bar, Column or Pie chart group
Inside End 0x2 Bar, Column or Pie chart group
Center 0x3 Bar, Column, Line, Bubble, Scatter or Pie chart group
Inside Base 0x4 Bar, Column chart group
Above 0x5 Line, Bubble or Scatter chart group
Below 0x6 Line, Bubble or Scatter chart group
Left 0x7 Line, Bubble or Scatter chart group
Right 0x8 Line, Bubble or Scatter chart group
Auto 0x9 Pie chart group
Moved by user 0xA All
Specifies the reading order of the text.
MUST be a value from the following table:
Value | Reading order
0x0 The reading order is equal to the iReadingOrder value of the Text record immediately following the closest preceding Chart, DataFormat, Legend, Series or YMult record where iReadingOrder is not equal to 0x0.
If no such preceding record exists, the DefaultText settings of the chart is used.
If the DefaultText settings also specify 0x0, the reading order is determined by the Application.
0x1 Left-to-right
0x2 Right-to-left
An unsigned integer that specifies the text rotation.
MUST be a value from the following table:
Value | Angle description
0 to 90 Text rotated 0 to 90 degrees counter-clockwise
91 to 180 Text rotated 1 to 90 degrees clockwise (angle is trot ¨C 90)
255 Text top-to-bottom with letters upright
ID Number
0x104F 4175
This record specifies the size and position for a legend, an attached label, or the plot area, as specified by the primary axis group.
Type | mdTopLt Position Mode | mdBotRt Position Mode | Meaning
plot area(axis group) MDPARENT MDPARENT x1 and y1 specify the horizontal and vertical offsets of the primary axis group¡®s upper-left corner, relative to the upper-left corner of the chart area, in SPRC. x2 and y2 specify the width and height of the primary axis group, in SPRC.
legend MDCHART MDABS x1 and y1 specify the horizontal and vertical offsets of the legend¡®s upper-left corner, relative to the upper-left corner of the chart area, in SPRC. x2 and y2 specify the width and height of the legend, in points.
legend MDCHART MDPARENT x1 and y1 specify the horizontal and vertical offsets of the legend¡®s upper-left corner, relative to the upper-left corner of the chart area, in SPRC. x2 and y2 MUST be ignored. The size of the legend is determined by the application.
legend MDKTH MDPARENT x1, y1, x2 and y2 MUST be ignored. The legend is located inside a data table.
attached label MDPARENT MDPARENT The meaning of x1 and y1 is specified in the Meaning of x1 and y1 as Specified by the type of Attached Label table. x2 and y2 MUST be ignored. The size of the attached label is determined by the application.
Specify the positioning mode for the upper-left corner of a legend, an attached label, or the plot area.
Specify the positioning mode for the lower-right corner of a legend, an attached label, or the plot area.
A signed integer that specifies a position.
A signed integer that specifies a position.
A signed integer that specifies a width.
A signed integer that specifies a height.
ID Number
0X1050 4176
This record specifies rich text formatting within chart titles, trendline, and data labels.
Specify the number of rich text runs.
MUST be greater than or equal to 3 and less than or equal to 256.
An array of FormatRun that specifies the rich text runs.
ID Number
0x1027 4135
Specify an object on a chart, or the entire chart, to which Text is linked.
Specify the object that the Text is linked to.
Must be a value from the following table
Value | Meaning
0x0001 Entire chart.
0x0002 Value axis, or vertical value axis on bubble and scatter chart groups
0x0003 Category axis, or horizontal value axis on bubble and scatter chart groups.
0x0004 Series or data points.
0x0007 Series axis.
0x000C Display units labels of an axis.
Specify the zero-based index into a Series record in collection of Series records in the current chart sheet SubStream.
Each referenced Series record specifies a series for the chart group to which the Text is linked.
When the wLinkObj field is 4, MUST be less than or equal to 254.
When the wLinkObj field is not 4, MUST be zero, and MUST be ignored.
Specify the zero-based index into the category (3) within the series specified by wLinkVar1, to which the Text is linked.
When the wLinkObj field is 4, if the Text is linked to a series instead of a single data point, the value MUST be 0xFFFF;
if the Text is linked to a data point, the value MUST be less than or equal to 31999.
When the wLinkObj field is not 4, MUST be zero, and MUST be ignored.
ID Number
0x86B 2155
Specify the contents of an extended data label.
An FrtHeader.
The frtHeader.rt field MUST be 0x086B.
A Bit
A bit that specifies whether the name of the series is displayed in the extended data label.
A bit that specifies whether the category (3) name, or the horizontal value on bubble or scatter chart groups, is displayed in the extended data label.
MUST be a value from the following table:
Value | Meaning
0 Neither of the data values are displayed in the extended data label.
1 If bubble or scatter chart group, the horizontal value is displayed in the extended data label. Otherwise, the category (3) name is displayed in the extended data label.
A bit that specifies whether the data value, or the vertical value on bubble or scatter chart groups, is displayed in the extended data label.
MUST be a value from the following table:
Value | Meaning
0 Neither of the data values are displayed in the extended data label.
1 If bubble or scatter chart group, the vertical value is displayed in the extended data label. Otherwise, the data value is displayed in the extended data label.
Specify whether the value of the corresponding data point,
represented as a percentage of the sum of the values of the series the data label is associated with,
is displayed in the extended data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not a bar of pie, doughnut, pie, or pie of pie chart group.
A bit that specifies whether the bubble size is displayed in the data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not a bubble chart group.
A case-sensitive XLUnicodeStringMin2 that specifies the string that is inserted between every data value to form the extended data label.
ID Number
0x89D 2205
This record specifies the layout information for attached label,
when contained in the sequence of records that conforms to the ATTACHEDLABEL rule, or legend,
when contained in the sequence of records that conforms to the LD rule.
An FrtHeader.
The frtHeader.rt field MUST be 0x089D.
An unsigned integer that specifies the checksum of the values.
See page 234 on MS_XLS
4 bits
An unsigned integer that specifies the automatic layout type of the legend.
MUST be ignored when this record is in the sequence of records that conforms to the ATTACHEDLABEL rule.
MUST be a value from the following table:
Value | Meaning
0x0 Align to the bottom
0x1 Align to top right corner
0x2 Align to the top
0x3 Align to the right
0x4 Align to the left
A CrtLayout12Mode that specifies the meaning of x.
A CrtLayout12Mode that specifies the meaning of y.
A CrtLayout12Mode that specifies the meaning of dx.
A CrtLayout12Mode that specifies the meaning of dy.
An Xnum that specifies an horizontal offset.
The meaning is determined by wXMode.
An Xnum that specifies an vertical offset.
The meaning is determined by wYMode.
An Xnum that specifies a width or an horizontal offset.
The meaning is determined by wWidthMode.
An Xnum that specifies a height or an vertical offset.
The meaning is determined by wHeightMode.
ID Number
0x8A6 2214
This record specifies additional text properties for the text in the entire chart, text in the current legend, text in the current legend entry, or the text in the attached label.
An FrtHeader.
The frtHeader.rt field MUST be 0x08A6.
ID Number
0x8A5 2213
This record specifies additional text properties for the text in the entire chart, text in the current legend, text in the current legend entry, text in the attached label, or the axis labels of the current axis.
An FrtHeader.
The frtHeader.rt field MUST be 0x08A5.
ID Number
0x1044 4164
This record specifies properties of a chart as defined by the Chart Sheet Substream ABNF.
A bit that specifies whether series are automatically allocated for the chart.
A bit that specifies whether to plot visible cells only.
A bit that specifies whether to size the chart with the window.
If fAlwaysAutoPlotArea is 1 then this field MUST be 1.
If fAlwaysAutoPlotArea is 0 then this field MUST be ignored.
A bit that specifies whether the default plot area dimension is used.
Value | Meaning
0 Use the default plot area dimension regardless of the Pos record information.
1 Use the plot area dimension of the Pos record; and fManPlotArea MUST be 1.
An unsigned integer that specifies how the empty cells are plotted.
MUST be a value from the following table:
Value | Meaning.
0x00 Empty cells are not plotted.
0x01 Empty cells are plotted as zero.
0x02 Empty cells are plotted as interpolated.
ID Number
0x86A 2154
This record specifies the beginning of a collection of records as defined by the Chart Sheet SubStream ABNF.
An FrtHeader.
The frtHeader.rt field MUST be 0x086A.
ID Number
0x1024 4132
This record specifies the text elements that are formatted using the information specified by the Text record.
An unsigned integer that specifies the text elements that are formatted using the position and appearance information specified by the Text record immediately following this record.
MUST be a value from the following table.
Value | Meaning
0x0000 Format all Text records in the chart group where fShowPercent equals 0 or fShowValue equals 0.
0x0001 Format all Text records in the chart group where fShowPercent equals 1 or fShowValue equals 1.
0x0002 Format all Text records in the chart where the value of fScalable of the associated FontInfo structure equals 0.
0x0003 Format all Text records in the chart where the value of fScalable of the associated FontInfo structure equals 1.
ID Number
0x1046 4166
This record specifies the number of axis groups on the chart.
An unsigned integer that specifies the number of axis groups on the chart.
If no chart groups are present on the chart, MUST be 0x0001.
If the chart sheet substream contains a Chart3d record, MUST be 0x0001.
MUST be a value from the following table:
Value | Axis present
0x0001 | A single primary axis group is present
0x0002 | Both a primary axis group and a secondary axis group are present
ID Number
0x1041 4161
This record specifies properties of an axis group.
A Boolean that specifies whether the axis group is primary or secondary.
MUST be a value from the following table.
Value | Meaning
0x0000 Axis group is primary.
0x0001 Axis group is secondary.
ID Number
0x101D 4125
This record specifies properties of an axis
An unsigned integer that specifies the type of axis.
The value MUST be 0x0000 if the record is the first axis in the axis group.
The value MUST be 0x0001 if the record is the second axis in the axis group.
The value MUST be 0x0002 if the record is the third axis in the axis group.
MUST be a value from the following table:
Value | Axis type
0x0000 Axis type is a horizontal value axis for a scatter chart group or a bubble chart group, or category (3) axis for all other chart group types.
0x0001 Axis type is a vertical value axis for a scatter chart group or a bubble chart group, or value axis for all other chart group types.
0x0002 Axis type is a series axis.
ID Number
0x1020 4128
This record specifies the properties of a category (3) axis, a date axis, or a series axis.
specifies where the value axis crosses this axis.
If fMaxCross is set to 1, the value this field MUST be ignored.
Axis Type | catCross Range
Category (3) axis This field specifies the category (3) at which the value axis crosses.
Series axis MUST be 0.
Date axis catCross MUST be equal to the value given by the following formula:
catCross = catCrossDate ¨C catMin + 1
Where catCrossDate is the catCrossDate field of the AxcExt record and catMin is the catMin field of the AxcExt record
A signed integer that specifies the interval between axis labels on this axis.
MUST be greater than or equal to 1 and less than or equal to 31999.
MUST be ignored for a date axis.
Specify the interval at which major tick marks and minor tick marks are displayed on the axis.
Major tick marks and minor tick marks that would have been visible are hidden unless they are located at a multiple of this field.
MUST be greater than or equal to 1, and less than or equal to 31999.
MUST be ignored for a date axis.
A bit that specifies whether the value axis crosses this axis between major tick marks.]
MUST be a value from to following table:
Value | Meaning
0 The value axis crosses this axis on a major tick mark.
1 | The value axis crosses this axis between major tick marks.
A bit that specifies whether the value axis crosses this axis at the last category (3), the last series, or the maximum date.
MUST be a value from the following table:
Value | Meaning
0 The value axis crosses this axis at the value specified by catCross.
1 | The value axis crosses this axis at the last category (3), the last series, or the maximum date.
A bit that specifies whether the axis is displayed in reverse order.
MUST be a value from the following table:
Value | Meaning
0 The axis is displayed in order.
1 | The axis is display in reverse order.
ID Number
0x1062 4194
This record specifies additional extension properties of a date axis, along with a CatSerRange record.
Specify the interval at which the major tick marks are displayed on the axis, in the unit defined by duMajor.
MUST be greater than or equal to catMinor when duMajor is equal to duMinor.
If fAutoMajor is set to 1, MUST be ignored.
If fDateAxis is set to 0, MUST be ignored.
Specify the unit of time to use for catMajor when the axis is a date axis.
If fDateAxis is set to 0, MUST be ignored.
Specify the interval at which the minor tick marks are displayed on the axis, in a unit defined by duMinor.
MUST be less than or equal to catMajor when duMajor is equal to duMinor.
If fAutoMinor is set to 1, MUST be ignored.
If fDateAxis is set to 0, MUST be ignored.
Specify the unit of time to use for catMinor when the axis is a date axis.
If fDateAxis is set to 0, MUST be ignored.
Specify the smallest unit of time used by the axis.
If fAutoBase is set to 1, this field MUST be ignored.
If fDateAxis is set to 0, MUST be ignored.
Specify at which date, as a date in the date system specified by the Date1904 record, in the units defined by duBase, the value axis crosses this axis.
If fDateAxis is set to 0, MUST be ignored.
If fAutoCross is set to 1, MUST be ignored.
A Bit
A bit that specifies whether catMin is calculated automatically.
If fDateAxis is set to 0, MUST be ignored.
MUST be a value from the following table:
Value | Meaning
0 The value specified by catMin is used and catMin is not calculated automatically.
1 catMin is calculated such that the minimum data points value can be displayed.
B Bit
A bit that specifies whether catMax is calculated automatically.
If fDateAxis is set to 0, then fAutoMax MUST be ignored.
If the value of the fMaxCross field in the CatSerRange record is 1, then fAutoMax MUST be ignored.
MUST be a value from the following table:
Value | Meaning
0 The value specified by catMax is used and catMax is not calculated automatically.
1 catMax is calculated such that the minimum data points value can be displayed.
C Bit
A bit that specifies whether catMajor is calculated automatically.
If fDateAxis is set to 0, MUST be ignored.
MUST be a value from the following table:
Value | Meaning
0 The value specified by catMajor is used and catMajor is not calculated automatically.
1 catMajor is calculated automatically.
D Bit
A bit that specifies whether catMinor is calculated automatically.
If fDateAxis is set to 0, MUST be ignored.
Value | Meaning
0 The value specified by catMinor is used and catMinor is not calculated automatically.
1 catMinor is calculated automatically.
E Bit
A bit that specifies whether the axis is a date axis.
MUST be a value from the following table:
Value | Meaning
0 The axis is not a date axis.
1 The axis is a date axis.
F Bit
A bit that specifies whether the units of the date axis are chosen automatically.
If fDateAxis is set to 0, MUST be ignored.
MUST be a value from the following table:
Value | Meaning
0 The value specified by duBase is used and duBase is not computed automatically.
1 duBase is calculated automatically.
G Bit
A bit that specifies whether catCrossDate is calculated automatically.
MUST be a value from the following table:
Value | Meaning
0 The value specified by catCrossDate is used and catCrossDate is not calculated automatically.
1 catCrossDate is calculated automatically such that it can be displayed.
H Bit
A bit that specifies whether the axis type is detected automatically.
MUST be a value from the following table:
Value | Meaning
0 The axis will stay as specified by the fDateAxis field.
1 The axis will automatically become a date axis when the data it is related to contains date values;
otherwise the axis will be a category axis.
ID Number
0x856 2134
This record specifies the attributes of the axis label.
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0856.
Specify the distance between the axis and axis label.
It contains the offset as a percentage of the default distance.
The default distance is equal to 1/3 the height of the font calculated in pixels.
MUST be a value greater than or equal to 0 (0%) and less than or equal to 1000 (1000%).
Specify the alignment of the axis label.
MUST be a value from the following table:
Value | Alignment
0x0001 Top-aligned if the trot field of the Text record of the axis is not equal to 0. Left-aligned if the iReadingOrder field of the Text record of the axis specifies left-to-right reading order; otherwise, right-aligned.
0x0002 Center-alignment
0x0003 Bottom-aligned if the trot field of the Text record of the axis is not equal to 0. Right-aligned if the iReadingOrder field of the Text record of the axis specifies left-to-right reading order; otherwise, left-aligned.
A bit that specifies whether the number of categories (3) between axis labels is set to the default value.
MUST be a value from the following table:
Value | Alignment
0 The value is set to catLabel field as specified by CatSerRange record.
1 The value is set to the default value. The number of category (3) labels is automatically calculated by the application based on the data in the chart.
ID Number
0X104E 4174
This record specifies the number format to use for the text on an axis.
An IFmt that specifies the number format identifier.
The identifier specified by this field MUST be a valid built-in number format identifier or the identifier of a custom number format as specified using a Format record.
ID Number
0x101E 4126
This record specifies the attributes of the axis labels, major tick marks, and minor tick marks associated with an axis.
An unsigned integer that specifies the location of major tick marks.
MUST be a value from the following table:
Value | Tick mark location
0x0000 None. No major tick marks are drawn on the axis.
0x0001 Inside. Major tick marks are drawn toward the plot area.
0x0002 Outside. Major tick marks are drawn away from the plot area.
0x0003 Crossing. Major tick marks are drawn evenly on both sides of the axis.
An unsigned integer that specifies the location of minor tick marks.
MUST be a value from the following table:
Value | Tick mark location
0x0000 None. No Minor tick marks are drawn on the axis.
0x0001 Inside. Minor tick marks are drawn toward the plot area.
0x0002 Outside. Minor tick marks are drawn away from the plot area.
0x0003 Crossing. Minor tick marks are drawn evenly on both sides of the axis.
An unsigned integer that specifies the location of axis labels.
MUST be a value from the following table:
Value | Tick mark location
0x0000 None. No axis labels are present on the axis.
0x0001 Low. Axis labels are drawn to the left of the plot area for a vertical axis or below the plot area for a horizontal axis for all chart group types except radar. Axis labels for radar chart group types will be drawn as if the value was 0x0003.
0x0002 High. Axis labels are drawn to the right of the plot area for a vertical axis or above the plot area for a horizontal axis for all chart group types except radar. Axis labels for radar chart group types will be drawn as if the value was 0x0003.
0x0003 Next to Axis. Axis labels are drawn next to the axis.
An unsigned integer that specifies the display mode of the background of the text of the axis labels.
MUST be ignored if the value of fAutoCo is 1.
MUST be a value from the following table:
Value | Background Mode
0x0001 Transparent background
0x0002 Opaque background. The background color will match the rgbBack field in the associated AreaFormat record as specified by the AXS rule in the Chart Sheet SubStream ABNF.
A LongRGB structure that specifies the color of the text for the axis labels.
MUST be ignored if fAutoCo is 1.
ID Number
0x1021 4129
This record specifies which part of the axis is specified by the LineFormat record that follows.
Specify which part of the axis is defined by the LineFormat record that follows.
MUST be unique among all other id field values in AxisLine records in the current axis.
MUST be greater than the id field values in preceding AxisLine records in the current axis.
MUST be a value from the following table
Value | Part of the axis defined
0x0000 The axis line itself
0x0001 The major GridLines along the axis
0x0002 The minor GridLines along the axis
0x0003 The walls or floor of a 3-D chart.
In the case where id is set to 0x0003, this record MUST be preceded by an Axis record with the wType set to a value from the following table:
Value of wType | Formatted object
0x0000 The walls of a 3-D chart.
0x0001 The floor of a 3-D chart.
ID Number
0x101F 4127
This record specifies the properties of a value axis.
An Xnum that specifies the minimum value of the value axis.
MUST be less than numMax.
If the value of fAutoMin is 1, this field MUST be ignored.
An Xnum that specifies the maximum value of the value axis.
MUST be greater than numMin.
If the value of fAutoMax is 1, this field MUST be ignored.
An Xnum that specifies the interval at which major tick marks and major gridlines are displayed.
MUST be greater than or equal to numMinor.
If the value of fAutoMajor is 1, this field MUST be ignored.
An Xnum that specifies the interval at which minor tick marks and minor gridlines are displayed.
MUST be greater than or equal to zero.
If the value of fAutoMinor is 1, this field MUST be ignored.
An Xnum that specifies at which value the other axes in the axis group cross this value axis.
If the value of fAutoCross is 1, this field MUST be ignored.
A Bit
A bit that specifies whether numMin is calculated automatically.
If fDateAxis is set to 0, MUST be ignored.
MUST be a value from the following table:
Value | Meaning
0 The value specified by numMin is used as the minimum value of the value axis.
1 numMin is calculated such that the data point with the minimum value can be displayed in the plot area.
B Bit
A bit that specifies whether numMax is calculated automatically.
MUST be a value from the following table:
Value | Meaning
0 The value specified by numMax is used as the maximum value of the value axis.
1 numMax is calculated such that the data point with the maximum value can be displayed in the plot area.
C Bit
A bit that specifies whether numMajor is calculated automatically.
MUST be a value from the following table:
Value | Meaning
0 The value specified by numMajor is used as the interval at which major tick marks and major gridlines are displayed.
1 numMajor is calculated automatically.
D Bit
A bit that specifies whether numMinor is calculated automatically.
MUST be a value from the following table.
Value | Meaning
0 The value specified by numMinor is used as the interval at which minor tick marks and minor gridlines are displayed.
1 numMinor is calculated automatically.
E Bit
A bit that specifies whether numCross is calculated automatically.
MUST be a value from the following table:
Value | Meaning
0 The value specified by numCross is used as the point at which the other axes in the axis group cross this value axis.
1 numCross is calculated so that the crossing point is displayed in the plot area.
F Bit
A bit that specifies whether the value axis has a logarithmic scale.
MUST be a value from the following table.
Value | Meaning
0 The scale of the value axis is linear.
1 The scale of the value axis is logarithmic. The default base of the logarithmic scale is 10, unless a CrtMlFrt record follows this record, specifying the base in a XmlTkLogBaseFrt structure.
G Bit
A bit that specifies whether the values on the value axis are displayed in reverse order.
MUST be one of the following.
Value | Meaning
0 Values are displayed from smallest-to-largest from left-to-right or bottom-to-top, respectively, depending on the orientation of the axis.
1 The values are displayed in reverse order, meaning largest-to-smallest from left-to-right or bottom-to-top, respectively.
A bit that specifies whether the other axes in the axis group cross this value axis at the maximum value.
MUST be one of the following.
Value | Meaning
0 The other axes in the axis group cross this value axis at the value specified by numCross.
1 The other axes in the axis group cross the value axis at the maximum value. If fMaxCross is 1, then both fAutoCross and numCross MUST be ignored.
ID Number
0x857 2135
This record specifies properties of the value multiplier for a value axis.
An FrtHeaderOld.
The frtHeaderOld.rt field MUST be 0x0857.
A signed integer that specifies the axis multiplier type.
MUST be a value from the following table.
Value | Multiplier Type
-1 Custom multiplier, multiplier value MUST be stored in numLabelMultiplier
0 Values on axis are multiplied by 1.0
1 Values on axis are multiplied by 100.0
2 Values on axis are multiplied by 1000.0
3 Values on axis are multiplied by 10,000.0
4 Values on axis are multiplied by 100,000.0
5 Values on axis are multiplied by 1,000,000.0
6 Values on axis are multiplied by 10,000,000.0
7 Values on axis are multiplied by 100,000,000.0
8 Values on axis are multiplied by 1,000,000,000.0
9 Values on axis are multiplied by 1,000,000,000,000.0
An Xnum that specifies a custom multiplier.
The value on the axis will be multiplied by the value of this field.
MUST be greater than 0.0.
If axmid is set to a value other than 0xFFFF, this field is ignored.
A bit that specifies whether the display units label is displayed.
A bit that specifies whether the display units label is currently being edited.
ID Number
0x1035 4149
This empty record specifies that the Frame record that immediately follows this record specifies properties of the plot area.
ID Number
0x1014 4116
The record specifies properties of a chart group
A bit that specifies whether the color for each data point and the color and type for each data marker varies.
If the chart group has multiple series, or the chart group has one series and the type is either a surface, stock, or area chart group, then this field MUST be ignored, and the data points do not vary.
For all other chart group types, if the chart group has one series, then a value of 0x1 specifies that the data points vary.
MUST be a value from the following table.
Value | Meaning
0x0 The color for each data point and the color and type for each data marker does not vary.
0x1 The color for data points or the color or type for data markers varies.
Specify drawing order of the chart group relative to the other chart groups, where 0x0000 is the bottom of the z-order.
MUST be unique for each instance of this record and MUST be less than or equal to 0x0009.
ID Number
0x1017 4119
This record specifies that the chart group is a bar chart group or a column chart group, and specifies the chart group attributes.
A signed integer that specifies the overlap between data points in the same category (3) as a percentage of the data point width.
MUST be greater than or equal to -100 and less than or equal to 100.
MUST be a value from the following table.
Value | Meaning
-100 to -1 Size of the separation between data points
0 No overlap
1 to 100 Size of the overlap between data points
Specify width of the gap between the categories (3) and left and right edges of the plot area
as a percentage of the data point width divided by 2.
It also specifies the width of the gap between adjacent categories (3) as a percentage of the data point width.
Must be less than or equal to 500.
A bit
Specify whether the data points and value axis are horizontal (for a bar chart group) or vertical (for a column chart group).
MUST be a value from the following table.
Value | Meaning
0 Data points and value axis are vertical.
1 Data points and value axis are horizontal.
A bit that specifies whether the data points in the chart group that share the same category (3) are stacked one on top of the next.
A bit that specifies whether the data points in the chart group are displayed as a percentage of the sum of all data points in the chart group that share the same category (3).
MUST be 0 if fStacked is 0.
A bit that specifies whether one or more data points in the chart group has shadows.
ID Number
0x1018 4120
This record specifies that the chart group is a line chart group and specifies the chart group attributes.
A bit that specifies whether the data points in the chart group that share the same category (3) are stacked one on top of the next.
A bit that specifies whether the data points in the chart group are displayed as a percentage of the sum of all data points in the chart group that share the same category (3).
MUST be 0 if fStacked is 0.
A bit that specifies whether one or more data markers in the chart group has shadows.
ID Number
0x1061 4193
This record specifies that the chart group is a bar of pie chart group or a pie of pie chart group and specifies the chart group attributes.
Specify whether this chart group is a bar of pie chart group or a pie of pie chart group.
MUST be a value from the following table
Value | SubType
0x01 Pie of pie Chart Group
0x02 Bar of pie Chart Group
A Boolean that specifies whether the split point of the chart group is determined automatically.
If the value is 1, when a bar of pie chart group or pie of pie chart group is initially created the data points from the primary pie are selected and inserted into the secondary bar/pie automatically.
An unsigned integer that specifies what determines the split between the primary pie and the secondary bar/pie.
MUST be ignored if fAutoSplit is set to 1.
MUST be a value from the following table.
Value | Type of Split | Meaning
0x0000 Position The data is split based on the position of the data point in the series as specified by iSplitPos.
0x0001 Value The data is split based on a threshold value as specified by numSplitValue.
0x0002 Percent The data is split based on a percentage threshold and the data point values represented as a percentage as specified by pcSplitPercent.
0x0003 Custom The data is split as arranged by the user. Custom split is specified in a following BopPopCustom record.
A signed integer that specifies how many data points are contained in the secondary bar/pie.
Data points are contained in the secondary bar/pie starting from the end of the series.
MUST be a value greater than or equal to 0 and less than or equal to 32000.
If the value is more than the number of data points in the series, the entire series will be in the secondary bar/pie, except for the first data point.
If split is not set to 0x0000 or fAutoSplit is set to 1, this value MUST be ignored.
signed integer that specifies the percentage below which each data point is contained in the secondary bar/pie as opposed to the primary pie.
The percentage value of a data point is calculated using the following formula:
(value of the data point x 100) / sum of all data points in the series
If split is not set to 0x0002 or if fAutoSplit is set to 1, this value MUST be ignored
A signed integer that specifies the size of the secondary bar/pie as a percentage of the size of the primary pie.
MUST be a value greater than or equal to 5 and less than or equal to 200.
A signed integer that specifies the distance between the primary pie and the secondary bar/pie.
The distance is specified as a percentage of the average width of the primary pie and secondary bar/pie.
MUST be a value greater than or equal to 0 and less than or equal to 500.
where 0 is 0% of the average width of the primary pie and the secondary bar/pie, and 500 is 250% of the average width of the primary pie and the secondary bar/pie.
An Xnum that specifies the split when the split field is set to 0x0001.
The value of this field specifies the threshold that selects which data points of the primary pie move to the secondary bar/pie.
The secondary bar/pie contains any data points with a value less than the value of this field.
If split is not set to 0x0001 or if fAutoSplit is set to 1, this value MUST be ignored.
A bit that specifies whether one or more data points in the chart group have shadows.
It needs to consider more!!!!!!!!
ID Number
0x1067 4199
This record specifies which data points in the series are contained in the secondary bar/pie instead of the primary pie.
An unsigned integer that specifies to the number of data points in the series plus one.
MUST be less than 32000.
A sequence of bits that specifies whether each data point in the series is contained in the primary pie or the secondary bar/pie.
For each data point a corresponding bit specifies whether a data point is contained in the secondary bar/pie or primary pie.
0 Data point is contained in the primary pie.
1 Data point is contained in the secondary bar/pie.
size of rggrbit in bytes = 1+floor(cxi / 8)
padding = size of rggrbit in bits - cxi
ID Number
0x1019 4121
This record specifies that the chart group is a pie chart group or a doughnut chart group, and specifies the chart group attributes.
Specify the starting angle of the first data point, clockwise from the top of the circle.
Specify the size of the center hole in a doughnut chart group as a percentage of the plot area size.
Value | Meaning
0 Pie chart group
10 to 90 Doughnut chart group
A bit that specifies whether one or more data points in the chart group has shadows.
A bit that specifies whether the leader lines to the data labels are shown.
ID Number
0x101A 4122
This record specifies that the chart group is an area chart group and specifies the chart group attributes.
A bit that specifies whether the data points in the chart group that share the same category (3) are stacked one on top of the next.
A bit that specifies whether the data points in the chart group are displayed as a percentage of the sum of all data points in the chart group that share the same category (3).
MUST be 0 if fStacked is 0.
A bit that specifies whether one or more data markers in the chart group has shadows.
ID Number
0x101B 4123
This record specifies that the chart group is a scatter chart group or a bubble chart group, and specifies the chart group attributes.
An unsigned integer that specifies the size of the data points as a percentage of their default size.
A value of 100 shows all the data points in their default size, as determined by the application.
MUST be greater or equal to 0 and less than or equal to 300.
MUST be ignored if the fBubbles field is 0.
An unsigned integer that specifies how the default size of the data points represents the value.
MUST be ignored if the fBubbles field is 0.
Value | Meaning
0x0001 The area of the data point represents the value.
0x0002 The width of the data point represents the value.
A bit that specifies whether this chart group is a scatter chart group or bubble chart group.
MUST be a value from the following table:
Value | Meaning
0 Scatter chart group
1 Bubble chart group
A bit that specifies whether data points with negative values in the chart group are shown on the chart.
MUST be ignored if the fBubbles field is 0.
A bit that specifies whether one or more data markers in a scatter chart group or data points in a bubble chart group has shadows.
ID Number
0x103E 4158
This record specifies that the chart group is a radar chart group and specifies the chart group attributes.
A bit that specifies whether category (3) labels are displayed.
A bit that specifies whether one or more data markers in the chart group has shadows.
ID Number
0x1040 4160
This record specifies that the chart group is a filled radar chart group and specifies the chart group attributes.
A bit that specifies whether category (3) labels are displayed.
A bit that specifies whether one or more data markers in the chart group has shadows.
ID Number
0x103F 4159
This record specifies that the chart group is a surface chart group and specifies the chart group attributes.
A bit that specifies whether the surface chart group is wireframe or has a fill.
MUST be a value from the following table.
Value | Meaning
0 Surface chart group is wireFrame.
1 Surface chart group has a fill.
A bit that specifies whether 3-D Phong shading is displayed.
ID Number
0x1022 4130
This record is written but unused.
ID Number
0x1016 4118
This record specifies the series for the chart.
An unsigned integer that specifies the count of series indexes in the rgiser field.
An array of 2-byte unsigned integers,
each of which specifies a one-based index of a Series record in the collection of Series records in the current chart sheet SubStream.
Each referenced Series specifies a series for the chart.
ID Number
0x103A 4154
This record specifies that the plot area of the chart group is rendered in a 3-D scene and also specifies the attributes of the 3-D plot area.
The preceding chart group type MUST be of type bar, pie, line, area, or surface.
A signed integer S
Specify the clockwise rotation, in degrees, of the 3-D plot area around a vertical line through the center of the 3-D plot area.
MUST be greater than or equal to 0 and MUST be less than or equal to 360.
If chart group type is bar and the value of field fTranspose in the record Bar is 1, then MUST be less than or equal to 44.
A signed integer that specifies the rotation, in degrees, of the 3-D plot area around a horizontal line through the center of the 3-D plot area.
MUST be greater than or equal to -90 and MUST be less than or equal to 90.
If the chart group type is bar and the value of field fTranspose in the record Bar is 1.
If the chart group type is pie then MUST be greater than or equal to 0.
If the chart group type is bar and the value of field fTranspose in the record Bar is 1, then the value MUST be less than or equal to 44.
A signed integer that specifies the field of view angle for the 3-D plot area.
MUST be greater than or equal to zero and less than 200.
If fNotPieChart is 0, Specify the thickness of the pie for a pie chart group.
If fNotPieChart is 1, Specify the height of the 3-D plot area as a percentage of its width.
MUST be greater than or equal to 5, MUST be less than 65535
A signed integer that specifies the depth of the 3-D plot area as a percentage of its width.
MUST be greater than or equal to 1 and less than or equal to 2000.
An unsigned integer
Specify the width of the gap between the series and the front and back edges of the 3-D plot area as a percentage of the data point depth divided by 2.
If fCluster is not 1 and chart group type is not a bar then pcGap also specifies distance between adjacent series as a percentage of the data point depth.
MUST be less than or equal to 500.
A Bit 1
A bit that specifies whether the 3-D plot area is rendered with a vanishing point.
If fNotPieChart is 0 the value MUST be 0.
If fNotPieChart is 1 then the value MUST be a value from the following table.
Value | Meaning
0 No vanishing point applied.
1 Perspective vanishing point applied based on value of pcDist.
B Bit 2
A bit that specifies whether data points are clustered together in a bar chart group.
If chart group type is not bar or pie, value MUST be ignored.
If chart group type is pie, value MUST be 0.
If chart group type is bar, then the value MUST be a value from the following table:
Value | Meaning
0 Data points are not clustered.
1 Data points are clustered.
C Bit 4
A bit that specifies whether the height of the 3-D plot area is automatically determined.
If fNotPieChart is 0 then this MUST be 0.
If fNotPieChart is 1 then the value MUST be a value from the following table:
Value | Meaning
0 The value of pcHeight is used to determine the height of the 3-D plot area
1 The height of the 3-D plot area is automatically determined
E Bit 16
A bit that specifies whether the chart group type is pie.
MUST be a value from the following table:
Value | Meaning
0 Chart group type MUST be pie.
1 Chart group type MUST not be pie.
F Bit 32
A bit that specifies whether the walls are rendered in 2-D
If fPerspective is 1 then this MUST be ignored.
If the chart group type is not bar, area or pie this MUST be ignored.
If the chart group is of type bar and fCluster is 0, then this MUST be ignored.
If the chart group type is pie this MUST be 0 and MUST be ignored.
If the chart group type is bar or area, then the value MUST be a value from the following table:
Value | Meaning
0 Chart walls and floor are rendered in 3D.
1 Chart walls are rendered in 2D and the chart floor is not rendered.
ID Number
0x1015 4117
This record specifies properties of a legend.
An unsigned integer
Specify the x-position, in SPRC, of the upper-left corner of the bounding rectangle of the legend.
MUST be ignored and the x1 field from the following Pos record MUST be used instead.
An unsigned integer
Specify the y-position, in SPRC, of the upper-left corner of the bounding rectangle of the legend.
MUST be ignored and the y1 field from the following Pos record MUST be used instead.
An unsigned integer
Specify the width, in SPRC, of the bounding rectangle of the legend.
MUST be ignored and the x2 field from the following Pos record MUST be used instead.
An unsigned integer
Specify the height, in SPRC, of the bounding rectangle of the legend.
MUST be ignored and the y2 field from the following Pos record MUST be used instead.
An unsigned integer
Specify the space between legend entries.
MUST be 0x01 which represents 40 twips between legend entries.
A Bit 1
A bit that specifies whether the legend is automatically positioned.
If this field is 0x1, then fAutoPosX MUST be 0x1 and fAutoPosY MUST be 0x1.
B - reserved1 (1 bit):
MUST be 1, and MUST be ignored.
C Bit 4
A bit that specifies whether the x-positioning of the legend is automatic.
D Bit 8
A bit that specifies whether the x-positioning of the legend is automatic.
E Bit 16
A bit that specifies the layout of the legend entries.
MUST equal 0x1 if fWasDataTable equal 0x1.
MUST be a value from the following table.
Value | Meaning
0x0 The legend contains multiple columns of legend entries or the size of the legend has been manually changed from the default size.
0x1 The legend contains a single column of legend entries.
F Bit 32
A bit that specifies whether the legend is shown in a data table.
ID Number
0x103D 4157
This record specifies the attributes of the up bars or the down bars between multiple series of a line chart group.
A signed integer that specifies the width of the gap between the up bars or the down bars.
MUST be a value between 0 and 500.
The width of the gap in SPRCs can be calculated by the following formula:
Width of the gap in SPRCs = 1 + pcGap
ID Number
0x101C 4124
This record specifies the presence of drop lines, high-low lines, series lines or leader lines on the chart group.
An unsigned integer that specifies the type of line that is present on the chart group.
This field value MUST be unique among the other id field values in CrtLine records in the current chart group.
This field MUST be greater than the id field values in preceding CrtLine records in the current chart group.
Value | Type of Line
0x0000 Drop lines below the data points of line, area, and stock chart groups.
0x0001 High-Low lines around the data points of line and stock chart groups.
0x0002 Series lines connecting data points of stacked column and bar chart groups, and the primary pie to the secondary bar/pie of bar of pie and pie of pie chart groups.
0x0003 Leader lines with non-default formatting connecting data labels to the data point of pie and pie of pie chart groups.
ID Number
0x8A7 2215
This record specifies layout information for a plot area.
An FrtHeader.
The frtheader.rt field MUST be 0x08A7.
An unsigned integer that specifies the checksum.
MUST be a value from the following table:
fManPlotArea field of ShtProps | fAlwaysAutoPlotArea field of ShtProps | dwCheckSum
0x0 0x0 0x00000001
0x0 0x1 0x00000000
0x1 0x0 0x00000000
0x1 0x1 0x00000001
A bit that specifies the type of plot area for the layout target.
Value | Meaning
0x0 Outer plot area - The bounding rectangle that includes the axis labels, axis titles, data table and plot area of the chart.
0x1 Inner plot area ¨C The rectangle bounded by the chart axes.
Specify the horizontal offset of the plot area¡®s upper-left corner, relative to the upper-left corner of the chart area, in SPRC.
Specify the vertical offset of the plot area¡®s upper-left corner, relative to the upper-left corner of the chart area, in SPRC.
A signed integer that specifies the width of the plot area, in SPRC.
A signed integer that specifies the height of the plot area, in SPRC.
A CrtLayout12Mode that specifies the meaning of x.
A CrtLayout12Mode that specifies the meaning of y.
A CrtLayout12Mode that specifies the meaning of dx.
A CrtLayout12Mode that specifies the meaning of dy.
An Xnum that specifies a horizontal offset. The meaning is determined by wXMode.
An Xnum that specifies a vertical offset. The meaning is determined by wYMode.
An Xnum that specifies a width or a horizontal offset. The meaning is determined by wWidthMode.
An Xnum that specifies a height or a vertical offset. The meaning is determined by wHeightMode.
ID Number
0x1063 4195
This record specifies the beginning of a collection of records as defined by the Chart Sheet Substream ABNF.
A Bit 1
A bit that specifies whether horizontal cell borders are displayed within the data table.
B Bit 2
A bit that specifies whether vertical cell borders are displayed within the data table.
C Bit 4
A bit that specifies whether an outside outline is displayed around the data table.
A bit that specifies whether the legend key is displayed next to the name of the series.
If the value is 1, the legend key symbols are displayed next to the name of the series.
ID Number
0x200 512
This record specifies the used range of the sheet.
It specifies the row and column bounds of used cells in the sheet. Used cells include all cells with formulas or data.
A RwLongU that specifies the first row in the sheet that contains a used cell.
Specify the zero-based index of the row after the last row in the sheet that contains a used cell.
MUST be less than or equal to 0x00010000.
If this value is 0x00000000, no cells on the sheet are used cells.
A ColU that specifies the first column in the sheet that contains a used cell.
Specify the zero-based index of the column after the last column in the sheet that contains a used cell.
MUST be less than or equal to 0x0100.
If this value is 0x0000, no cells on the sheet are used cells.
ID Number
0x1065 4197
This record is part of a group of records which specify the data of chart.
Specify the type of the data records contained by the Number records following it.
MUST be a value from the following table.
Value | Number records following it contain
0x0001 Series values or vertical values (for scatter or bubble chart groups)
0x0002 Category labels or horizontal values (for scatter or bubble chart groups)
0x0003 Bubble Sizes
ID Number
0x203 515
This record specifies a cell that contains a floating-point number.
A Cell that specifies the cell.
If this record appears in a SERIESDATA record collection.
This record specifies a cell in the chart data cache that specifies data for an error bar series, then this field is a ChartNumNillable.
If a ChartNumNillable is used, a blank cell is specified by a NilChartNum that has a type field with a value of 0x0000,
and a cell with a #N/A error is specified by a NilChartNum that has a type field with a value of 0x0100.
A structure that specifies a non-numeric value (also known as ¨DNaN ¡¬ or ¨DNot a Number¡¬) that is used in place of a numeric value.
ID Number
0x205 517
This record specifies a cell that contains either a Boolean value or an error value.
A Cell that specifies the cell.
A Bes that specifies a Boolean or an error value.
ID Number
0x201 513
This record specifies an empty cell with no formula or value.
A Cell that specifies the cell.
ID Number
0x204 516
This record specifies a label on the category (3) axis for each series.
A Cell that specifies the cell.
XF class
XF class
ExcelXF interface
GetBorderStyle
SetBorderStyle
GetBorderColor
SetBorderColor
FontID
Font
Format id
Format String
IsLockedOrHiddenSet?
Locked?
Hidden?
Style?
Not used
Horizontal Alignment
Vertical Alignment
Allow Wordwrap
Not used
Text rotation in cell
Indent
Shrik text to fit
Merge the cell
for Far East versions
is the Border set?
the diagonal style for diagonal borders
Background back color - used in patterns
Background fore color - used in patterns
Is background set?
Is font set?
Forecolor
Celltype
ExcelXFormat - default constructor
GetBorderStyles (left, right, top, bottom, diagonal)
SetBorderStyles
GetBorderColor (left, right, top, bottom, diagonal)
SetBorderColor
FontID
Font
FormatID
Format
IsLockedOrHiddenSet
Locked
Hidden
Style
L123Prefix
AlignHorz
AlignVert
Wrap
JustLast
Rotation
Indent
ShrinkToFit
MergeCell
ReadingOrder
BorderSet
DiagonalStyle
BackBackColor
BackForeColor
IsBackSet
IsFontSet
ForeColor
CellType
ParentIndex
XF - constructor
XF - constructor
Internal use only. Represents a SupBook workbook.
Internal use only. Determines whether this is the current workbook.
Internal use only. Path and file name of the SupBook.
Internal use only. Array list of sheet names in the workbook.
Internal use only. Number of sheets in the workbook.
Internal use only. Creates a SupBook.
Internal use only. Creates a new SupBook and specifies whether it is the current workbook.
Whether it is the current workbook
BiffReader class
The byte list is for holding all bytes that need further process whild reading.
Represents the current reading biff block. The biff block may contain some confusing biff records
(e.g. CONTINUE). To understand the context of such confusing biff records, we need this field to
indicate the containing biff block. The name of these blocks follow the definitions of [MS-XLS].pdf.
IsBiff method - Returns whether the stream is a Microsoft Excel BIFF stream.
GetSheetNames
ProcessStream method - Process the stream in BiffReader.
ProcessStream method -
ProcssStream method - Process the stream.
Get chart count in specifal chart sheet
all records in specifal chart sheet
records in specifal chart object
all MSODRAWING Records in specifal chart sheet
Get Chart Name from Chart Sheet View
Index of SheetView
Real Chart Count
MSODRAWING Record List
Readrecord - Read the specified BIFF record.
ReadRecord - Read the specified BIFF record.
IsSheetLoad
ReadCONTINUE
Set referenced font and color to each text run.
The text runs.
Read1904
ReadBOF
ReadBOOKBOOL
ReadLEFTMARGIN
ReadTOPMARGIN
End of refactored code for reading records that contain information for Pivot Table
ReadRIGHTMARGIN
ReadBOTTOMMARGIN
ReadBUNDLESHEET
ReadCALCCOUNT
ReadCALCMODE
ReadCF
ReadCONDFMT
ReadDEFCOLWIDTH
ReadDEFAULTROWHEIGHT
ReadDIMENSIONS
ReadDELTA
ReadEXTERNCOUNT
ReadEXTERNNAME
ReadEXTERNSHEET
ReadFILEPASS
ReadFONT
ReadITERATION
ReadNAME
ReadREFMODE
ReadHEADER
ReadFOOTER
ReadPRINTGRIDLINES
ReadPRINTHEADERS
ReadHCENTER
ReadVCENTER
ReadSETUP
ReadSHRFMLA
ReadSHEETEXT: SheetTab BackColor
ReadSST
The Shared String Table (SST) record is broken into multiple records whenever the
byte size is greater than 8228. When this occurs, the SST record is followed by
as many CONTINUE records as are needed to persist the entire SST contents. The
CONTINUE record, as well as all Excel BIFF records, also has a maximum data count of
8228 bytes.
In the simplest form, parsing a Shared String Table that is broken across multiple
CONTINUE records requires nothing more than stripping off the BIFF header for each
CONTINUE record and appending the records together. However, Excel has implemented
a storage (file size) optimization where if the CONTINUE record's data begins within
the string portion of a BIFF String (the 8228 byte boundary occurred in the middle of
a string), then the CONTINUE record's string value will be stored in compressed unicode
regardless of how the previous portion of the string is stored.
ReadSUPBOOK
ReadWINDOW1
ReadXF
ReadARRAY
ReadCOLINFO
ReadHORIZONTALPAGEBREKS
ReadMERGECELLS
ReadROW
ReadSELECTION
ReadVERTICALPAGEBREKS
ReadWINDOW2
ReadWSBOOL
ProcessSST
ReadCellType
ReadMulCellType
NumFromRk
ReadBiffStr
Converts all sheet index to work sheet index. Because Spread doesn't support chart sheet and
dialog sheet.
Gets the adjusted sheet index by removing all chart and dialog sheet.
The sheet index.
Returns the data sheet index.
rkrec
Summary description for RC4Engine.
Encrypt or Decrypt bytes
Represent the following records must not be obfuscated or encrypted:
BOF, FilePass, UsrExcl, FileLock, RRDInfo, and RRDHead.
It is described in MS-XLS.PDF,2.2.10 Encryption(Password to Open)
WookBook Stream
WookBook Stream
En_DEcrypted Stream
Represents the soruce sheets index that are merged into output xls file.
Represents the destination sheets that are merged into output xls file.
Represents the id seed of output obj records.
Represents all id of merging obj records. We should avoid using these numbers for the new obj records.
Represents the old OBJ id and new OBJ id.
Represents the Spead sheet index and opening worksheet index.
Represents the merging shape records of each sheet.
Init
ProcessStream method - Build the stream in BiffWriter.
BuildStream
WriteBeginWorkbookRecords
WriteEndWorkbookRecrods
WriteFormatRecords
WriteWorkbookRecords
ProcessSheet
Write Sheet tabColor
Writes the mso drawing group records to the buffer.
Writes the mso drawing records to the buffer.
The buffer.
The sheet index.
Writes the shape group container to the buffer.
The sheet index.
The shape group container.
The buffer.
Writes the shape container records to the buffer.
The sheet index.
The shape container record.
The buffer.
Writes the current obj record to the buffer. If the object is a chart, puts the chart sub-sheet
records to the buffer also.
The sheet index.
The buffer.
Writes the current txo record to the buffer.
The buffer.
Writes the record buffer to the output bufferStream with continue appended.
The bytes.
Type of the record.
The stream.
Gets the drawing group container from the opening xls file.
Returns the drawing group container.
Gets the drawing container from the opening xls file.
The sheet.
Returns the drawing container.
Gets the obj records from the opening xls file.
The sheet.
Returns the obj record list.
Gets the txo records from the opening xls file.
The sheet.
Returns the txo record list.
Merges the drawing container from opening xls file with the output records.
The sheet.
The drawing container.
The obj records.
The txo records.
Returns the merged drawing container.
Gets the next available obj id.
Returns the obj id.
Gets the merging shape record cluster list.
The sheet.
Returns the shape record cluster list.
Gets the merging shape record cluster list.
The drawing container.
The obj records.
The txo records.
Returns the shape record cluster list.
Gets the merging shape record cluster list.
The shape container list.
The obj records.
The obj index list.
The txo records.
Returns the shape record cluster list.
Determines whether the specified shape shall be merged into the output drawing object.
The shape container.
true if the shape is merged into the output drawing object; otherwise, false.
Populates the shape record list recursively.
The shape group container.
The shape container list.
Populates the shape record list recursively.
The shape group container.
The shape container list.
The obj index list.
Merges the drawing group container from the opening xls file with the output records.
The drawing group container.
Returns the merged drawing group container.
Write EXTERNNAME and NAME record(s) if any extern names exist
Merges the opening name records with output records.
The output name records.
The output sup book records.
The output extern name records.
The output extern sheet record.
Merges the opening name records with output records.
The object formula.
The output name records.
The output sup book records.
The output extern name records.
The output extern sheet record.
Merges the index of xti and name in opening xls file with output records.
The index of xti.
The index of name.
The output name records.
The output sup book records.
The output extern name records.
The output extern sheet record.
Find the sup book in the sup book record list.
The sup book record.
The sup book record list.
Returns the index of sup book in the list.
Find the xti in the array.
The index of sup book.
The index of first tab.
The index of last tab.
The searching xti array.
Returns the index of xti in the array.
Gets the xti.
The index of sup book.
The index of first tab.
The index of last tab.
Returns the xti.
Gets the unique extern sheets.
The extern sheets.
Returns the unique extern sheets.
Gets the extern name records.
The extern names.
Returns the extern name records.
Gets the add-in referencing sup book record.
The extern names.
Returns the add-in referencing sup book record.
Gets the self referencing sup book record.
Returns the self referencing sup record.
Gets the name records from the Spread name definitions.
The names.
The name definitions.
The tabs.
Returns the name records.
Gets the print title name records.
Returns the name records.
Iterates the extern names list to see whether it has an extern name.
The extern names list.
true if the extern name exists; otherwise, false.
ProcessAxis
ProcessCells
WriteRecord
WriteRecord
WriteRecord
WriteRecord
AddUniqueString
Adjust the output sheet index list by merged sheets.
The sheet index list.
Returns the adjusted sheet index list.
Adjust the output sheet index by merged sheets.
The sheet index.
Returns the adjusted sheet index.
Gets or sets a value indicating whether the loaded compound file contains VBA/MACRO projects.
true if VBA projects exist; otherwise, false.
Excel Parsed Thing (ptg) defines.
These values are used as tokens for parsing Excel Formula buffers.
ExcelAxis class
Represents a cluster of shape related BIFF records. The class is used to merge the shape records
from opening xls file to output xls file.
Gets or sets the shape container.
The shape container.
Gets or sets the object.
The object.
Gets or sets the text object.
The text object.
Gets or sets the first continued text object.
The first continued text object.
Gets or sets the second continued text object.
The second continued text object.
Leaf node
Record Rule
Leaf Node.
It is record
CHARTSHEETCONTENT = [WriteProtect] [SheetExt] [WebPub] *HFPicture PAGESETUP PrintSize [HeaderFooter] [BACKGROUND]
*Fbi *Fbi2 [ClrtClient] [PROTECTION] [Palette] [SXViewLink] [PivotChartBits] [SBaseRef] [MsoDrawingGroup]
OBJECTS Units CHARTFOMATS SERIESDATA *WINDOW *CUSTOMVIEW [CodeName] [CRTMLFRT] EOF
PAGESETUP = Header Footer HCenter VCenter [LeftMargin] [RightMargin] [TopMargin] [BottomMargin]
[Pls *Continue] Setup
BACKGROUND = BkHim *Continue
PROTECTION = [Protect] [ScenarioProtect] [ObjProtect] [Password]
OBJECTS = *(MSODRAWING *(TEXTOBJECT / OBJ)) [MsoDrawingSelection]
MSODRAWING = MsoDrawing *Continue.
OBJ = Obj *Continue
TEXTOBJECT = TxO *Continue
MSODRAWING = MsoDrawing *Continue.
OBJ = Obj *Continue
TEXTOBJECT = TxO *Continue
CHARTFOMATS = Chart Begin *2FONTLIST Scl PlotGrowth [FRAME] *SERIESFORMAT *SS ShtProps
*2DFTTEXT AxesUsed 1*2AXISPARENT [CrtLayout12A] [DAT] *ATTACHEDLABEL [CRTMLFRT]
*([DataLabExt StartObject] ATTACHEDLABEL [EndObject]) [TEXTPROPS] *2CRTMLFRT END
Reset pieExplode Value
Reset property value because excel chart does not support the property in specifal scenario.
Series Type
Series Collection
FONTLIST = FrtFontList StartObject *(Font [Fbi]) EndObject
FRAME = Frame Begin LineFormat AreaFormat [GELFRAME] [SHAPEPROPS] End
GELFRAME = 1*2GelFrame *Continue [PICF]
Get Paletten From ParentRule
Get Fill Type From Excel Setting
Get Color from Excel Setting
Composes the color.
Get Color with alpha
PICF = Begin PicF End
SHAPEPROPS = ShapePropsStream *ContinueFrt12
SERIESFORMAT = Series Begin 4AI *SS (SerToCrt / (SerParent (SerAuxTrend / SerAuxErrBar)))
*(LegendException [Begin ATTACHEDLABEL [TEXTPROPS] End]) End
AI = BRAI [SeriesText]
whether the characters in text are double-byte characters.
SS = DataFormat Begin [Chart3DBarShape] [LineFormat AreaFormat PieFormat] [SerFmt]
[GELFRAME] [MarkerFormat] [AttachedLabel] *2SHAPEPROPS [CRTMLFRT] End
if the Color is not in the color table, it needs add GelFrameRule.
Write Border Style of Marker
Write Foreground of Marker
Write Background of Marker
CRTMLFRT = CrtMlFrt *CrtMlFrtContinue
ATTACHEDLABEL = Text Begin Pos [FontX] [AlRuns] AI [FRAME] [ObjectLink] [DataLabExtContents] [CrtLayout12]
[TEXTPROPS] [CRTMLFRT] End
TEXTPROPS = (RichTextStream / TextPropsStream) *ContinueFrt12
DFTTEXT = [DataLabExt StartObject] DefaultText ATTACHEDLABEL [EndObject]
AXISPARENT = AxisParent Begin Pos [AXES] 1*4CRT End
Writes the axes rule.
The writer.
AXES = [IVAXIS DVAXIS [SERIESAXIS] / IVAXIS DVAXIS] *3ATTACHEDLABEL [PlotArea FRAME]
IVAXIS = Axis Begin [CatSerRange] AxcExt [ChartFrtInfo] [CatLab] AXS [CRTMLFRT] End
DVAXIS = Axis Begin [ValueRange] [AXM] AXS [CRTMLFRT] End
SERIESAXIS = Axis Begin [CatSerRange] AXS [CRTMLFRT] End
CRT = ChartFormat Begin (Bar / Line / (BopPop [BopPopCustom]) / Pie / Area / Scatter / Radar / RadarArea / Surf)
CrtLink [SeriesList] [Chart3d] [LD] [2DROPBAR] *4(CrtLine LineFormat) *2DFTTEXT [DataLabExtContents]
[SS] *4SHAPEPROPS End
PlotArea Vertical
AXS = [IFmtRecord] [Tick] [FontX] *4(AxisLine LineFormat) [AreaFormat]
[GELFRAME] *4SHAPEPROPS [TextPropsStream *ContinueFrt12]
AXM = YMult StartObject ATTACHEDLABEL EndObject
Custom multiplier, multiplier value MUST be stored in numLabelMultiplier
0 Values on axis are multiplied by 1.0
1 Values on axis are multiplied by 100.0
2 Values on axis are multiplied by 1000.0
3 Values on axis are multiplied by 10,000.0
4 Values on axis are multiplied by 100,000.0
5 Values on axis are multiplied by 1,000,000.0
6 Values on axis are multiplied by 10,000,000.0
7 Values on axis are multiplied by 100,000,000.0
8 Values on axis are multiplied by 1,000,000,000.0
9 Values on axis are multiplied by 1,000,000,000,000.0
LD = Legend Begin Pos ATTACHEDLABEL [FRAME] [CrtLayout12] [TEXTPROPS] [CRTMLFRT] End
DROPBAR = DropBar Begin LineFormat AreaFormat [GELFRAME] [SHAPEPROPS] End
DAT = Dat Begin LD End
SERIESDATA = Dimensions 3(SIIndex *(Number / BoolErr / Blank / Label))
If #N/A is in the Values in Excel, it needs convert to Double.NAN
Others convert to 0
A Boolean that specifies whether bBoolErr contains an error code or a Boolean value.
Error info in Bes Class
WINDOW = Window2 [PLV] [Scl] [Pane] *Selection
0x0001 Entire chart.
0x0002 Value axis, or vertical value axis on bubble and scatter chart groups
0x0003 Category axis, or horizontal value axis on bubble and scatter chart groups.
0x0004 Series or data points.
0x0007 Series axis.
0x000C Display units labels of an axis.
Gets the float value from fixed-point 16.16 number.
The fixed-point 16.16 number.
the real value
Get 16.16 number from float number.
The float number.
the 16.16 number.
Converts byte representations into integers.
Private constructor disables the instantiation of this object.
Gets an integer value from two bytes.
first byte
second byte
Gets an integer from four bytes, doing all the necessary swapping.
Byte one
Byte two
Byte three
Byte four
Integer value represented by the four bytes
Gets a two-byte array from an integer.
Integer
Two bytes
Gets a four-byte array from an integer.
Integer
Four-byte array
Converts an integer into two bytes, and places it in the array at the specified position.
integer value to convert
Target the array to place the byte data into
Pos the position at which to place the data
Converts an integer into four bytes, and places it in the array at the specified position.
integer to convert
Target the array which is to contain the converted data
Pos the position in the array in which to place the data
Represents the Excel shape.
[1024] ROOT_SPGR_ID
[12700] EMU_PT_RATIO
[9525] Default line width
[25400] Default shadow offest
[0xFFFF] Default shadow opacity
[0xFFFF] Default fill opacity
[0.0F] Horizontal angle
[-45.0F] Diagonal up angle
[-90.0F] Vertical angle
Diagonal down angle
[6] Hexagon sides
[8] Octagon sids
[5] Pentagon sides
Default geo text size
[1048576] No fill
[0x10] No fill mask
[0x80000] No line mask
[524288] No line
[0] Default geo left
[0] Default geo top
[21600] Default geo right
[21600] Default geo bottom
Default shape path
[-43216] G_FONT_BOLD_ITALIC
[-43248] G_FONT_ITALIC
[-43232] G_FONT_BOLD
[-43264] G_FONT_REGULAR
Default shadow color
[0x20002] Shadow on
[0x20000] Shadow off
Default line color is Color.Black
Default fill color is Color.White
Default fill background color
Gets the Chart Object id.
Initializes a new instance of the class.
Initializes a new instance of the class.
left
top
right
bottom
Gets the object id.
Sets the image data.
image data
Gets or sets the geo text font italic style.
Gets or sets the geo text font bold style.
Gets or sets the graphics segment info.
Gets or sets the geoLeft of the shape.
Gets or sets the geo top of the shape.
Gets or sets the geo right of the shape.
Gets or sets the geo bottom of the shape.
Gets or sets the geo path of the shape.
Gets or sets the geo points of the shape.
Gets or sets the geo text.
geo text
Gets or sets the geo text font.
geo text font
Gets or sets the size of the geo text.
size of the geo text
Gets a value indicating whether this instance is group.
true if this instance is group; otherwise, false
Gets or sets the parent.
parent
Gets or sets the start cap.
start cap
Gets or sets the spread start cap.
spread start cap
Gets or sets the end cap.
end cap
Gets or sets the spread end cap.
spread end cap
Gets or sets a value indicating whether shape is flipped horizontal.
true if shape is flipped horizontal; otherwise, false
Gets or sets a value indicating whether shape is flipped vertical.
true if shape is flipped vertical; otherwise, false
Gets or sets the font.
font
Gets or sets the color of the force.
color of the force
Gets or sets the color of the fore.
color of the fore
Gets or sets the fill color struct.
fill color struct
Gets or sets the color of the fill.
color of the fill
Gets or sets the fill back color struct.
fill back color struct.
Gets or sets the color of the fill back.
color of the fill back
Gets or sets the color struct of the line.
color struct of the line
Gets or sets the color of the line.
color of the line
Gets or sets the color struct of the shadow.
color struct of the shadow
Gets or sets the color of the shadow.
color of the shadow
Gets or sets the type of the fill.
type of the fill
Gets or sets the fill angle.
fill angle
Gets or sets the fill focus.
fill focus
Gets or sets the fill back opacity.
fill back opacity
Gets or sets the fill opacity.
fill opacity
Gets or sets the shadow opacity.
shadow opacity
Gets or sets the shadow off set X.
shadow off set X
Gets or sets the shadow off set Y.
shadow off set Y
Gets or sets the type of the shadow.
type of the shadow
Gets or sets a value indicating whether [shadow on].
true if [shadow on]; otherwise, false
Gets or sets the line in EMU unit.
line width in EMU unit
Gets or sets the line dashing.
line dashing
Gets or sets the spread line dashing.
spread line dashing
Gets or sets the anchor.
anchor
Gets or sets the text.
text
Gets or sets the image.
image
Gets or sets the blip id.
blip id
Gets or sets the id.
id
Gets or sets the left.
left coordinate if the shape is top level, left offset if the shape belongs to some group
Gets or sets the top.
top coordinate if the shape is top level, top offset if the shape belongs to some group.
Gets or sets the right.
right coordinate if the shape is top level, right offset if the shape belongs to some group.
Gets or sets the bottom.
bottom coordinate if the shape is top level, bottom offset if the shape belongs to some group.
Gets the width.
width
Gets the height.
height
Gets or sets the image data.
image data
Gets or sets the rotate angle.
rotate angle
Gets or sets the type.
type
Gets or sets the text horizontal alignment.
The text horizontal alignment.
Gets or sets the text vertical alignment.
The text vertical alignment.
Gets or sets the text rotation.
The text rotation.
Gets whether the line properties is set.
Gets or sets whether the shape is printed.
Gets or sets the name of this shape.
Gets or sets the top position of the fill.
Gets or sets the left position of the fill.
Gets or sets the bottom position of the fill.
Gets or sets the right position of the fill.
Gets or sets whether the chart is locked
The class for hodling properties of excel note shape.
Gets or sets note show or not.
Gets or sets note row.
Gets or sets note column.
MsoShapePath
A line of straight segments
A closed polygonal object
A line of Bezier curve segments
A closed shape with curved edges
pSegmentInfo must be non-empty
Shape type enumeration.
[0] min shape
not primitive shape
[1] shape
[2] shape
[3] shape
[4] shape
[5] shape
[6] shape
[7] shape
[8] shape
[9] shape
[10] shape
[11] shape
[12] shape
[13] shape
[14] shape
[15] shape
[16] shape
[17] shape
[18] shape
[19] shape
[20] shape
[21] shape
[22] shape
[23] shape
[24] shape
[25] shape
[26] shape
[27] shape
[28] shape
[29] shape
[30] shape
[31] shape
[32] shape
[33] shape
[34] shape
[35] shape
[36] shape
[37] shape
[38] shape
[39] shape
[40] shape
[41] shape
[42] shape
[43] shape
[44] shape
[45] shape
[46] shape
[47] shape
[48] shape
[49] shape
[50] shape
[51] shape
[52] shape
[53] shape
[54] shape
[55] shape
[56] shape
[57] shape
[58] shape
[59] shape
[60] shape
[61] shape
[62] shape
[63] shape
[64] shape
[65] shape
[66] shape
[67] shape
[68] shape
[69] shape
[70] shape
[71] shape
[72] shape
[73] shape
[74] shape
[75] shape
[76] shape
[77] shape
[78] shape
[79] shape
[80] shape
[81] shape
[82] shape
[83] shape
[84] shape
[85] shape
[86] shape
[87] shape
[88] shape
[89] shape
[90] shape
[91] shape
[92] shape
[93] shape
[94] shape
[95] shape
[96] shape
[97] shape
[98] shape
[99] shape
[100] shape
[101] shape
[102] shape
[103] shape
[104] shape
[105] shape
[106] shape
[107] shape
[108] shape
[109] shape
[110] shape
[111] shape
[112] shape
[113] shape
[114] shape
[115] shape
[116] shape
[117] shape
[118] shape
[119] shape
[120] shape
[121] shape
[122] shape
[123] shape
[124] shape
[125] shape
[126] shape
[127] shape
[128] shape
[129] shape
[130] shape
[131] shape
[132] shape
[133] shape
[134] shape
[135] shape
[136] shape
[137] shape
[138] shape
[139] shape
[140] shape
[141] shape
[142] shape
[143] shape
[144] shape
[145] shape
[146] shape
[147] shape
[148] shape
[149] shape
[150] shape
[151] shape
[152] shape
[153] shape
[154] shape
[155] shape
[156] shape
[157] shape
[158] shape
[159] shape
[160] shape
[161] shape
[162] shape
[163] shape
[164] shape
[165] shape
[166] shape
[167] shape
[168] shape
[169] shape
[170] shape
[171] shape
[172] shape
[173] shape
[174] shape
[175] shape
[176] shape
[177] shape
[178] shape
[179] shape
[180] shape
[181] shape
[182] Left right up arrow shape
[183] Sun shape
[184] Moon shape
[185] Bracket pair shape
[186] Brace pair shape
[187] Seal4 shape
[188] Double wave shape
[189] Action button blank
[190] Action button home
[191] Action button help
[192] Action button information
[193] Action button forward next
[194] Action button back previous
[195] Action button end
[196] Action button beginning
[197] Action button return
[198] Action button document
[199] Action button sound
[200] Action button movie
[201] Host control
[202] Text box
Max
[0x0FFF] NIL
[0xFFF] Not supported shape
[0xFFF] Free Form
Escher Color structure
Initializes a new instance of the class.
color
Gets the four byte value.
Sets the four byte value.
four byte value
Gets the color.
Sets the color.
Composes the color.
palette
Composes the color.
palette
original color that is applied some correction to creare new color
mso fill type enumeration.
Fill with a solid color
Fill with a pattern (bitmap)
A texture (pattern with its own color map)
Center a picture in the shape
Shade from start to end points
Shade from bounding rectangle to end point
Shade from shape outline to end point
Similar to msofillShade, but the fillAngle is scaled
additionally by the aspect ratio of the shape.
If shape is square, it is the same as msofillShade.
special type - shade to title --- for PP
Use the background fill color or pattern
Shape anchor properties.
[0] Move and size with cells
[2] Move but not size with cells
[3] Not move or size with cells
dashed line style
mso shadow type
N pixel offset shadow
Use second offset too
Rich perspective shadow (cast relative to shape)
Rich perspective shadow (cast in shape space)
Perspective shadow cast in drawing space
Shado emboss or engrave
Line end effect enumeration.
mso color index enumeration.
Represents the drawing text and its properties.
Initializes a new instance of the class.
The text.
The text horizontal alignment.
The text vertical alignment.
The text rotation.
Gets or sets the text.
The text.
Gets or sets the text horizontal alignment.
The text horizontal alignment.
Gets or sets the text vertical alignment.
The text vertical alignment.
Gets or sets the text rotation.
The text rotation.
Represents the horizontal alignment of the drawing text.
Represents the vertical alignment of the drawing text.
Represents the rotation angle of the shape text.
Represents the drawing group reader class.
Initializes a new instance of the class.
Gets the blip count.
Gets the image data.
blip id
Sets the font.
Array list of fonts
Array list of indexes of font color pallete
Sets the color palette.
Color palette
Gets the palette.
Gets or sets the font list.
font list
Gets or sets the color of the font.
color of the font
The drawing manager class.
Initializes a new instance of the class.
Gets the number of excel shape.
the number of excel shape
Gets the Excel shape.
index
The excep shape
Sets the text list.
Array list of text
Array list of indexes
Sets the OBJ record list.
The OBJ record list.
Determines whether the specified shape shall be merged into the output drawing object.
The shape container.
true if the shape is merged into the output drawing object; otherwise, false.
Gets or sets the drawing container.
The drawing container.
Gets the text shape count.
The text shape count.
Gets the Excel shape list.
Excel shape list
Gets the Excel Chart list.
The drawing writer class.
Initializes a new instance of the class.
Sets the Excel shape list.
Excel shape list
Gets the drawing container of the specified sheet.
The sheet.
The obj reords.
The txo records and their continue records.
Returns the drawing container record.
Gets the drawing container by collection.
The sheet.
The shape container records.
Returns the drawing container.
Gets the shape container list.
The excel shapes.
Returns the shape container list.
Determines whether the text of the shape is exported.
The Excel shape object.
true if the text is exported; otherwise, false.
Creates the obj record with specified object id and type.
The ExcelShape object.
Returns the obj record.
Creates the txo record.
The Excel shape object.
Returns the txo record.
Creates the txo continue record.
The Excel shape object.
Return the txo continue record.
Creates the txo runs record.
The Excel shape object.
Returns the txo runs record.
Gets the object type of specified Excel shape.
The Excel shape.
Returns the object type.
Gets the root shape container.
Returns the root shape container.
Represents the writer for drawing group.
Initializes a new instance of the class.
Gets the blip id.
image
Gets the drawing group container.
Returns the drawing group container.
Adds the cluster.
drawing id
number of shape id saved
Adds the image and number of ref for this image.
image
number of reference
Gets or sets the font list.
font list
Gets or sets the color of the font.
color of the font
Gets or sets the shapes count.
shapes count
Gets or sets the drawings count.
drawings count
Interface that supports reading or importing from an Excel BIFF file.
Set the sheet data model
Finish - called after the Excel BIFF file has completed loading.
Gets the font information for importing from Excel BIFF file.
Called to determine if Spread Web or Spread Win build.
Spread Web stores the default font name in the resources.
Beginning of file; notifies the implementation that
the workbook load is beginning or we are loading a new sheet.
This is needed to clear the shared formula list for each sheet.
Sheet index
1904 - Excel Biff Record
BUNDLESHEET - Excel Biff Record
0-visible, 1-hidden, 2-very hidden
ARRAY - Excel Biff Record
Sheet index
BOTTOMMARGIN - Excel Biff Record
Sheet index
CALCMODE - Excel Biff Record
Sheet index
0-manual, 1-automatic, -1-automatic(except tables)
FORMAT - Sets the cell format. - Excel Biff Record
Sheet index
FORMULA - Excel Biff Record
Sets the formula for the specified location and options.
Sheet index
Row index
Column index
Formula string
FORMULA - Excel Biff Record
Sets the formula for the specified location and options.
Sheet index
Row index
Column index
Binary reader
Extra binary reader
Index of first row
Index of first column
CELL NOTE - Excel Biff Record
Sets the cell note for the specified location and options.
Sheet index
Row index
Column index
Whether it is a sticky note
Note text
OBJ
OBJ
CONDFMT, CF - Excel Biff Records
Sheet index
LABEL, LABELSST, NUMBER, RK - Excel Biff Records
Sheet index
COLINFO - Excel Biff Record
Sheet index
NAME - Excel Biff Record
Sheet index
DEFAULTROWHEIGHT - Excel Biff Record
Sheet index
DEFCOLWIDTH - Excel Biff Record
Sheet index
DELTA - Excel Biff Record
Sheet index
DIMENSIONS - Excel Biff Record
Sheet index
WINDOW2 - Excel Biff Record (element display values)
Sheet index
ExcelSetExternName
ExcelSetExternSheet
ExcelSetExternSheet
ExcelSetExternSheet
ExcelSetFilePass
ExcelSetRowColumnHeaders
Sheet index
ExcelSetIteration
Sheet index
CALCCOUNT - Excel Biff Record
Sheet index
ExcelSetLeftMargin - Excel Biff Record
Sheet index
MERGECELLS - Excel Biff Record
Sheet index
HEADER - Excel Biff Record
Sheet index
FOOTER - Excel Biff Record
Sheet index
HORIZONTALPAGEBREAKS - Excel Biff Record
Sheet index
VERTICALPAGEBREAKS - Excel Biff Record
Sheet index
ExcelSetPrintGridlines
Sheet index
ExcelSetPrintHeaders
Sheet index
ExcelSetHCenter
Sheet index
ExcelSetPageSetup - Excel Biff Record
Sheet index
Paper size
Scaling factor
Starting page
Width
Height
Whether left-to-right
Whether portrait page orientation
Whether no pls
Whether no color
Whether draft
Whether to print notes
Whether no orientation
Whether use page
whether the comments are printed at the end of the sheet.
Print resolution
Vertical print resolution
Number header
Number footer
Copies
UseSmartPrint
PANE - Excel Biff Record
Sheet index
PASSWORD - Excel Biff Record
PROTECT - Excel Biff Record
Sheet index
REFMODE - Excel Biff Record
Sheet index
ExcelSetRightMargin - Excel Biff Record
Sheet index
WINDOW2 - Excel Biff Record (row and column headers, and grid color value)
Sheet index
ExcelSetRowInfo - Excel Biff Record
Sheet index
BOOKBOOL - Excel Biff Record
WINDOW1 - Excel Biff Record (scrollbar-specific values)
ExcelSetSelection - Excel Biff Record
Sheet index
SHRFMLA - Excel Biff Record
Sheet index
Called from BiffRead to query the Shared Formula list maintained in the implementation of this interface
SUPBOOK - Excel Biff Record
Print_Area - Excel Built-In Custom Name
Sheet index
Print_Titles - Excel Built-In Custom Name
Sheet index
SUPBOOK - Excel Biff Record
WINDOW1 - Excel Biff Record (tab-specific values)
WINDOW2 - Excel Biff Record (toprow, left column values)
Sheet index
ExcelSetTopMargin - Excel Biff Record
Sheet index
ExcelSetVCenter - Excel Biff Record
Sheet index
WINDOW1 - Excel Biff Record (window-specific values)
ExcelSetXF - Excel Biff
SCL - Excel Biff Record (Zoom)
Sheet index
Sets the validation data for a range of cells in the specified sheet.
Sheet that contains the validation list cell
Sheet that contains the input cell range
Input cell range
Validation data if data is direct, null otherwise
Validation cell range list
Display and behavior flags for the validation combo
Sets the Excel shape list.
Sheet index
Excel shape list
true if successful, otherwise false.
Sets the Sheet Tab Color
Sheet index
SheetTab BackColor
if set hide all in Excel, hide all shapes and charts.
Get ExcelChartReader
Interface that supports reading or importing from an Excel BIFF file.
Interface that supports writing or exporting to an Excel BIFF file.
Finish - called after the Excel BIFF file has completed saving.
Gets the left margin for exporting to Excel BIFF file.
Sheet index
Margin
Gets the top margin for exporting to Excel BIFF file.
Sheet index
Margin
Gets the right margin for exporting to Excel BIFF file.
Sheet index
Margin
Gets the bottom margin for exporting to Excel BIFF file.
Sheet index
Margin
Gets the calculation mode for exporting to Excel BIFF file.
Sheet index
Automatic recalculation mode
Gets the cell formula for exporting to Excel BIFF file.
Sheet index
Row index
Column index
Formula
Gets the cell information for exporting to Excel BIFF file.
Sheet index
List of cell coordinates
List of cell values
List of cell formulas
List of format indexes
Gets the axis information for exporting to Excel BIFF file.
Sheet index
Index
Size
Whether hidden
Style index
List of whether style formatted
List of outline levels
List of zero heights
List of whether collapsed
Row axis
Maximum column set
Gets the default row height for exporting to Excel BIFF file.
Sheet index
Row height
Gets the delta for exporting to Excel BIFF file.
Sheet index
Delta
Gets the default column width for exporting to Excel BIFF file.
Sheet index
Column width
Gets the conditional formats for exporting to Excel BIFF file.
Sheet index
Array of row indexes
Array of column indexes
Array list of Excel formats
Array list of first conditions
Array list of last conditions
Array list of options
Gets the external sheet information for exporting to Excel BIFF file.
Array list of sheets
Gets the dimensions for exporting to Excel BIFF file.
Sheet index
Number of columns
Number of rows
Gets the display elements for exporting to Excel BIFF file.
Sheet index
Whether to display the formulas
Whether to display the zeros
Whether to display the grid
Whether to display the headers
Whether to display columns right to left
Gets the external or custom names for exporting to Excel BIFF file.
Array list of external or custom names
Gets the font information for exporting to Excel BIFF file.
Whether to get the default font name from resource
Gets the formats for exporting to Excel BIFF file.
Array list of formats
Gets the fixed or frozen rows and columns for exporting to Excel BIFF file.
Sheet index
Number of fixed or frozen leading rows
Number of fixed or frozen leading columns
Number of fixed or frozen trailing rows
Number of fixed or frozen trailing columns
Gets the number of automatic calculations for exporting to Excel BIFF file.
Sheet index
Number of automatic calculations
Gets the number of iterations for exporting to Excel BIFF file.
Sheet index
Number of iterations
Gets the footer for exporting to Excel BIFF file.
Sheet index
Footer
Gets the header for exporting to Excel BIFF file.
Sheet index
Header
Gets the row page breaks for exporting to Excel BIFF file.
Sheet index
Array list of row page breaks
Gets the column page breaks for exporting to Excel BIFF file.
Sheet index
Array list of column page breaks
Gets whether to print the grid lines for exporting to Excel BIFF file.
Sheet index
Whether to print the grid lines
Gets whether to print the headers for exporting to Excel BIFF file.
Sheet index
Whether to print the headers
Gets whether the print should be horizontally centered.
Gets whether the print should be vertically centered.
Gets the page setup for printing for exporting to Excel BIFF file.
Sheet index
whether the comments are printed at the end of the sheet.
Gets the titles for printing for exporting to Excel BIFF file.
Sheet index
Row index
Column index
Number of rows
Number of columns
Gets the merge cells for exporting to Excel BIFF file.
Sheet index
Number
Array list of first row indexes
Array list of last row indexes
Array list of first column indexes
Array list of last column indexes
Gets the names for exporting to Excel BIFF file.
Array list of names
Array list of definitions
Array list of sheet indexes
Whether there are external or custom names
Gets the panes for exporting to Excel BIFF file.
Sheet index
X coordinate
Y coordinate
Top row index
Near (left) column index
Index of the active pane
Gets the protection setting for exporting to Excel BIFF file.
Sheet index
Whether sheet is protected
Gets the cell reference style for exporting to Excel BIFF file.
Sheet index
Cell reference style
Gets the row and column grid line color for exporting to Excel BIFF file.
Sheet index
Gets the selection list for exporting to Excel BIFF file.
Sheet index
Array list of selections
Active cell location
Index of the pane
Gets the number of sheet for exporting to Excel BIFF file.
Number of sheet
Gets the sheet information for exporting to Excel BIFF file.
Sheet index
Whether the sheet is hidden
Returns the sheet name
Gets the top and left (near) location for exporting to Excel BIFF file.
Sheet index
Index of top row
Index of left (near) column
Gets the window for exporting to Excel BIFF file.
Rectangular area of window
Whether the window is hidden
Whether the window is reduced to an icon
Gets the tabs for exporting to Excel BIFF file.
Whether to display tabs
Index of tab cursor is over
Index of first tab
Index of selected tab
Tab ratio
Gets the scroll bars for exporting to Excel BIFF file.
Whether to display the horizontal scroll bar
Whether to display the vertical scroll bar
Gets the zoom (scaling factor) for exporting to Excel BIFF file.
Sheet index
Zoom (scaling factor)
Determine if the value for exporting to Excel BIFF file is a calculation error; if it is, get the error string.
Value
Error value
Determine if there are external or custom names for exporting to Excel BIFF file.
Gets the row and column gutter for exporting to Excel BIFF file.
Sheet to get gutter
Maximum level of row gutter
Maximum level of column gutter
Gets validation data from specified sheet.
The sheet.
The collection of validation data.
The collection of row for cell validation data.
The collection of column for cell validation data.
An indicator of whether each cell validation combo is editable.
Excels the get excel shape.
The sheet.
Excels the get excel note as text shape.
The sheet.
Gets shape from image cell type.
The sheet.
Gets the Sheet Tab Color
Sheet index
SheetTab BackColor
Gets chart from sheet
The sheet
Add warning list when export to excel file
sheet index
row index
column index
message
warning code
Get ExcelChartWriter
Interface that supports writing or exporting to an Excel Chart.
X_IndexAxis or Z_IndexAxis
Y_ValueAxis
Specifies the values for ExcelException that can be retrieved
by accessing the Code property of an ExcelException object.
The file cannot be opened. Check HRESULT for more information.
There is a sharing violation error when trying to open this file.
There is an unknown error. Check HRESULT for more information.
The specified stream cannot be created. Check HRESULT for more information.
This stream is not a BIFF-formatted Excel file.
This file is not a structured storage file.
The specified Excel sheet index is outside of the allowable range for the specified Excel file.
The specified Excel sheet name is not in the specified Excel file.
The specified Spread sheet index is out of range.
The specified Spread sheet name cannot be found.
The specified Excel sheet name is not supported in specified Excel file
The specified password is incorrect.
Specifies the warnings codes returned in the Code property of ExcelWarning.
General warning.
The Excel file cannot be opened. See the warning message for more information.
The Excel file cannot be opened because it is password protected.
A value in this formula exceeds an Excel limit.
The referenced formula element cannot be found.
The formula element is currently not supported by Spread.
There is an unforeseen error. Please contact FarPoint with this information.
The specified Excel sheet name is not supported in specified Excel file
The specified password is incorrect.
The specified ChartType is not supported in Excel file.
The specified ChartType is not supported in Spread.
Represents the warnings arising from loading or saving Excel files.
Constructor - internal use
Constructor - internal use
Constructor - internal use
Constructor - internal use
Gets the index of the chart where the warning pertains.
Gets the name of the chart where the warning pertains.
Gets the Excel warning code.
Gets whether the sheet, row, and column properties are set.
Gets the custom or external name that caused the warning, or null.
Gets the index of the applicable sheet where the warning pertains.
Gets the index of the row where the warning pertains.
Gets the index of the column where the warning pertains.
Gets the string description of the warning.
Represents the collection of warnings generated by loading or saving an Excel file.
Creates a list of warnings for Excel file operations.
Copies the Excel file operation warning list to the specified ExcelWarningList object.
warning list (ExcelWarningList object) to which to copy the list
internal use
internal use
internal use
internal use
Gets a warning from a specific position in the list of Excel file operation warnings.
Gets a list of Excel file operation warnings.
Gets the number of warnings in the list of Excel file operation warnings.
Gets or sets the name of the file that contains the Excel file operation warnings.
Represents the exceptions arising from loading or saving Excel files.
Default constructor - internal use
Constructor - internal use
Constructor - internal use
Constructor - internal use
Constructor - internal use
Constructor - internal use
Gets the text message associated with this Excel exception.
Gets the HRESULT, a coded numerical value that is associated with this Excel exception.
Gets whether the property is set.
Gets the ExcelExceptionCode enumeration member set for this Excel exception.
Specifies what part of the spreadsheet to export to an Excel-compatible file.
[0] Saves the spreadsheet to the Excel-compatible file with no special options.
[1] Saves the displayed data but not the formulas to the Excel-compatible file.
[2] Saves the custom row headers to the Excel-compatible file.
[4] Saves the custom column headers to the Excel-compatible file.
[8] Saves the results of rows after filtering them to the Excel-compatible file.
[12] Saves both the custom row headers and the custom column headers to the Excel-compatible file.
[16] Saves the spreadsheet to an Excel 2007 (OfficeOpen XML) format.
[136] Saves the spreadsheet as viewed to the Excel-compatible file.
[32] Saves only the data to the Excel-compatible file.
[64] Saves the appearance settings of alternating rows to the Excel-compatible file.
[256] Use a custom color palette, and use it for color approximations if there are more than 56 colors set into Spread.
[512] Use the default color palette.
[1024] Saves the displayed data and formatting, but not the notes.
[2048] Keeps Excel data that was previously loaded from the files (e.g. VBA, Macro).
[4096] The default row height is not saved. Excel will automatically determine row heights based on the largest font that is set in each row.
Specifies what part of the Excel-compatible file you want to load into the spreadsheet.
[0] Opens the spreadsheet from the Excel-compatible file with no special options.
[1] Loads only the data from the Excel-compatible file into the spreadsheet.
[3] Loads formulas from the Excel-compatible file into the spreadsheet.
[4] Loads row headers from frozen columns in the Excel-compatible file into the spreadsheet.
[8] Loads column headers from frozen rows in the Excel-compatible file into the spreadsheet.
[12] Loads row headers from frozen columns and column headers from frozen rows.
[1024] Avoids recalculation after loading the Excel file (by not setting the
SheetView.AutoCalculation property to true and not calling SheetView.Recalculate().
[512] Loads content from Excel files that is kept while writing back. (e.g. VBA, Macro)
[2048] Only loads content from Excel files that is kept while writing back. (e.g. VBA, Macro)
The Excel files are not imported into Spread.
Specifies the type of Excel workbook - used by IsExcelFile and IsExcelStream.
None - the return of IsExcelFile or IsExcelStream is false
Uses BIFF - Binary Interchange File Format, the .XLS file format
Uses OOXML - Office Open XML, the .XLSX file format
Handles loading from and saving to Excel-compatible files.
ExcelFileHandler - default constructor
ExcelFileHandler - constructor
GetResource
LoadFromCompoundStorage
LoadFromCompoundStorage
LoadFromCompoundStorageFile
LoadFromCompoundStorage
LoadFromCompoundStorage
SaveToCompoundStorage
SaveToCompoundStorage
SaveToCompoundStorage
SaveToCompoundStorage
Determines whether the file is an Excel document.
File name
Determines whether the file is an Excel document.
File name
return value indicating whether the file is a BIFF formatted file (xls) or not.
Determines whether the stream is an Excel document.
Stream
Determines whether the stream is an Excel document.
Stream
Whether stream is Excel BIFF
Determines whether the file is an Excel document and returnes whether the file is encrypted.
File Name
Whether File is Excel BIFF
Whether File is Encrypted Excel
Determines whether the stream is an Excel document and returns whether the file is encrypted.
Stream
Whether stream is Excel BIFF
Whether Stream is Encrypted Excel
Opens the specified Excel file and loads the specified sheet.
Opens the specified Excel file and loads the specified sheet.
Opens the specified Excel file and loads the specified sheet.
Saves the specified stream.
Stream
Saves the specified stream.
Saves the specified stream.
Saves the specified file.
Saves the specified file.
Disposes of unused resources.
Initializes the compound file object for writing Excel file.
Drops the opening xls file.
Drops the opening xlsx file.
Drops the opening Excel files.
Copies the opening excel files from source excel file handler.
The excel file handler.
A coordinate class made up of sheet, row, column
Constructor
Constructor
Sheet
Row
Column
IComparer implementation for TriCoord objects
Compare public method
Compare static method
ByteArrayToReader static method
dmyFromJulian static method
ColorFromIndex
Convert from an Excel BIFF color index to an RGB value.
If index is used in Palett, then return a next not used index.
Convert from an RGB value to an Excel BIFF color index.
Return the Excel BIFF color index that represents the RGB color
closest to the specified RGB value.
Represents the default Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Represents the traditional Chinese Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Represents the simplified Chinese Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Represents the Japan Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Represents the Korea Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Represents the Thailand Excel build-in formats.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Gets the format string from Excel build-in index.
The index.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Gets the Excel build-in index from format string.
The format.
Returns the format index.
http://www.ecma-international.org/publications/standards/Ecma-376.htm
Internal use only for backward compatibility.
Represents the named color enum.
Default Pattern and compound array settings for the pens used to draw borders in the ComplexBorder class.
Return the Excel border index from the passed in pattern and compound arrays.
DashPattern for the pen used to draw the Excel hair border
DashPattern for the pen used to draw the Excel dash-dot border
DashPattern for the pen used to draw the Excel medium-dash border
DashPattern for the pen used to draw the Excel medium-dash-dot border
DashPattern for the pen used to draw the Excel slanted-dash-dot border
CompoundArray for the pen used to draw Excel slanted-dash-dot border
DashPattern for the pen used to draw the Excel dot border
DashPattern for the pen used to draw the Excel dash-dot-dot border
DashPattern for the pen used to draw the Excel medium-dash-dot-dot border
CompoundArray for the pen used to draw Excel double border
Spread Dash Pattern
Spread Dot Pattern
Spread Dash Dot Pattern
Spread Dash Dot Dot Pattern
formatType enumeration
Currency type
DateTime type
Double type
Fraction type
General type
Integer type
Percent type
Engineering notation type
Text type
Pic or Mask type
Boolean type
TimeSpan type
Utility method for import or export. Internal use only.
Gets the cell coords.
value. like "A1","AA12"
row index base 0
column index base 0
Gets the cell coords.
row index base 0
column index base 0
the cell name, like "A1","B2"...
Gets the cell range.
value. such as "A1:C3"
Start index of the row base 0
Start index of the column base 0
End index of the row base 0
End index of the column base 0
Gets the cell range.
Start index of the row base 0
Start index of the column base 0
End index of the row base 0
End index of the column base 0
the cell range name, such as "A1:C3".
Gets the color with the pattern.
color input
pattern, type is ST_PatternType
Color after pattern.
Gets the color by CT_Color type object.
Object of the CT_Color
theme colors, get list from themes.xml
Color.
Gets the color list from theme.
themes, get from themes.xml
Color list from theme
Gets the color from open xml drawing color object.
The drawing color object.
Returns the color.
Gets the color from open xml drawing color object.
The drawing color object.
The themes.
Returns the color.
Gets the color from open xml drawing color object.
The underlying drawing color object.
The themes.
Returns the color.
Gets the color from open xml preset color list.
The preset color
Returns the color.
Gets the open xml rgb color from the color.
The color.
Returns the open xml rgb color.
Gets the CT_Color object by color instance.
color object
the instance of CT_Color
Gets the excel XF by Ct_ DXF.
ct DXF
theme colors
Covert CT_Border to Border
Gets the font style by Ct_ DXF.
>>> #23180 lucky 2008.12.08
Gets the Ct_ DXF by excel XF.
xf
Gets the string by CT_Rst object.
CT_Rst object
text from CT_Rst.
Creates the object from file and type.
filename
type
object about this file
Creates the object from stream and type.
file stream
type
object about this file
Creates the stream from object and type.
obj
type
stream about this file.
Determines whether string is null or empty.
string
true if string is null or empty; otherwise, false.
HLS Color structure.
H:Hue
S:Saturation
L:Luminosity
Initializes a new instance of the class.
color
Darkers the specified perc darker.
perc darker
color after dark.
Operator ==s the specified a.
A
b
Operator !=s the specified a.
A
b
Equalses the specified object.
object
Returns the hash code for this instance.
A 32-bit signed integer that is the hash code for this instance.
Lighters the specified perc lighter.
perc lighter
the color after light.
Colors from HLS.
hue
luminosity
saturation
the Color from HLS
Hues to RGB.
n1
n2
hue
the RGB values.
Returns the fully qualified type name of this instance.
A containing a fully qualified type name.
Applies the tint.
tint
Gets the hue.
The hue.
Gets the luminosity.
The luminosity.
Gets the saturation.
The saturation.
Utility method for files compress and uncompress
Compresses the file.
zip output stream
Cyclic redundancy check
Name of the file
file stream
successful or not
Closes the zip output stream.
zip output stream
successful or not
Gets the zip output stream.
Name of the file
the instance of ZipOutputStream
Gets the zip output stream.
stream
the instance of ZipOutputStream
Compresses the files.
m folder
target stream
successful or not
Compresses the files.
m folder
Name of the file
successful or not
Extracts the zip.
zip stream
Instance of MemoryFolder
Extracts the zip.
Name of the file
Instance of MemoryFolder
Folders and Files stored in the memory
Initializes a new instance of the class.
Creates the memory file.
Name of the file
stream
successful or not
Fixes the name of the file.
Name of the file
file name
Gets the file.
Name of the file
stream about file
Removes the memory file from the memory folder.
Represents the name of the file.
true if the stream is removed successfully; otherwise, false.
Clones this instance.
Returns the cloned memory folder.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Gets or sets the current path.
The current path.
Gets or sets the root package file of the memory file.
Gets the shared formula.
The shared formula.
Xml style - Excel 12
Initializes a new instance of the class.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Resets the protection setting.
Gets or sets the font.
The font.
Gets or sets the num format id.
The num format id.
Gets or sets the color of the back.
The color of the back.
Gets or sets the color of the fore.
The color of the fore.
Gets or sets the border.
The border.
Gets or sets the horizontal alignment.
The horizontal alignment.
Gets or sets the vertical alignment.
The vertical alignment.
Gets or sets the rotation.
The rotation.
Gets or sets a value indicating whether this is wrap.
true if wrap; otherwise, false.
Gets or sets a value indicating whether this is protect.
true if protect; otherwise, false.
Gets or sets the format code.
Format code
Gets or sets the indent.
Fill - Excel 12
Gets or sets the color of the fore.
The color of the fore.
Gets or sets the color of the back.
The color of the back.
Gets or sets the pattern.
The pattern.
Gets or sets the type of the pattern.
The type of the pattern.
Border - Excel 12
Initializes a new instance of the class.
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Gets or sets the left.
The left.
Gets or sets the top.
The top.
Gets or sets the right.
The right.
Gets or sets the bottom.
The bottom.
Border side - Excel 12
Sets the style.
border style
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Gets or sets a value indicating whether this instance is set.
true if this instance is set; otherwise, false.
Gets or sets the color.
The color.
Gets or sets the style.
The style.
Gets or sets the width.
The width.
Represents the blip to fill the drawing object.
Gets or sets the id of the blip.
The id.
Gets or sets the name of the blip.
The name.
Gets or sets the stream of the blip.
The stream.
Gets or sets the list of the referenced blips. This value is used to populate the relation id.
The properties list.
Gets or sets the id of the BlipChart.
The id.
Gets or sets the name of the BlipChart.
The name.
Methods for save and load open xml to spread.
Saves the xml files with specified excel write.
excel write
Name of the file
stream
save flags
successful or not
Loads the XML files with the specified Excel read.
Excel read
Name of the file
Stream
Excel sheet index
Sheet names
Whether test file
Excel open flags
successful or not
Copies the stream.
in stream
out stream
Gets or sets the memory folder of the xlsx file.
The memory folder.
Save and load relationship
Save to the object.
hashtable about relationships
CT_Relationships object
Load to the spread.
ht relation ship
ct relationships
Gets the name of the relationships by base.
Name of the base
memory folder
hashtable about relationships
Gets the name of the relationships name by base.
Name of the base
relationships file name
Removes all relation files of the specified file.
The file.
The memory folder.
Save and Load content types
Gets the type of the default.
default types
Fixes the name of the file.
Name of the file
file name
Toes the object.
root file
m folder
instance of CT_Types
Updates the file list.
types
x file
memory folder
successful or not
Gets the type list from opening excel file.
The memory folder.
Returns the type list.
Converts the type of the relationship type2 content.
Type of the relation
content type
Toes the spread.
ct types
m folder
successful or not
Save and Load styles
Toes the object.
cell format list
Instance of CT_Stylesheet
Builds the number format list.
cell format list
num format list
num format I ds
Builds the font list.
cell format list
font list
font I ds
Builds the fill list.
cell format list
fill list
fill I ds
Builds the border list.
cell format list
border list
border I ds
Builds the num FMT list.
cell format list
num FMT list
num FMT I ds
Build the Ct_Font from font.
font
color
CT_Font
Build the Ct_Fill from IExcelXF.
excel X format
CT_Fill
Build the Ct_Border from IExcelXF.
excel X format
CT_Border
Toes the spread.
FarPoint Spread
stylesheet
themes
successful or not
Sets the styles.
FarPoint Spread
stylesheet
number formats
fonts
font colors
fills
borders
Gets the named styles.
FarPoint Spread
stylesheet
number formats
fonts
font colors
fills
borders
Gets the borders.
stylesheet
theme colors
Gets the fills.
stylesheet
theme colors
Gets the fonts.
stylesheet
theme colors
fonts
font colors
Gets the number formats.
stylesheet
Gets the XML style by Ct_Xf.
Fonts
Font colors
Fills
Borders
Number formats
Excel formats
XML style
Builds the border side by Ct_BorderPr.
border pr
theme colors
BorderSide instance
Save and Load Sheetview
Synchronizes sheet to object.
FarPoint Spread
String table
Styles
Index of the sheet
Whether selected
Excel save flags
CT worksheet
Get Sheet TabColor
Gets the conditional formats.
FarPoint Spread
styles
Index of the sheet
Worksheet
Gets the protection.
FarPoint Spread
Index of the sheet
Worksheet
Gets the print options.
FarPoint Spread
Index of the sheet
Worksheet
Gets the page breaks.
FarPoint Spread
Index of the sheet
Worksheet
d col
d row
Gets the header and footer.
FarPoint Spread
Index of the sheet
Worksheet
Gets the page setup.
FarPoint Spread
Index of the sheet
Worksheet
Gets the margins.
FarPoint Spread
Index of the sheet
Worksheet
Gets the show elements.
FarPoint Spread
Index of the sheet
ct sheetview
Gets the zoom scale.
FarPoint Spread
Index of the sheet
ct sheetview
Gets the selections.
FarPoint Spread
Index of the sheet
ct sheetview
Gets the panes.
FarPoint Spread
Index of the sheet
ct sheetview
Gets the selected sheet.
if set to true [is selected]
ct sheetview
Gets the rows and cells.
FarPoint Spread
String table
Index of the sheet
Worksheet
Whether style formatted
Filtered-out rows
Default row height
Excel save flags
Minimum row index
Maximum row index
Minimum column index
Maximum row index
Gets the filters.
FarPoint Spread
Index of the sheet
Worksheet
Gets the merge cells.
FarPoint Spread
Index of the sheet
Worksheet
Gets the columns.
FarPoint Spread
Index of the sheet
Worksheet
Width of the char
Gets the height of the default width and height.
FarPoint Spread
Index of the sheet
Worksheet
Gets the dimensions.
FarPoint Spread
Index of the sheet
Worksheet
Minimum row index
Maximum row index
Minimum column index
Maximum row index
Column dimension
Row dimension
Synchronizes Excel XML to Spread.
FarPoint Spread
Worksheet
String table
Styles
Themes
Index of the sheet
Sheetview file
Memory folder
Whether selected
Excel open flags
Formula setter
successful or not
Set SheetTab Color
Sets the filters.
FarPoint Spread
Worksheet
Index of the sheet
Sets the conditional formats.
FarPoint Spread
Worksheet
styles
Index of the sheet
theme colors
Sets the protection.
FarPoint Spread
Worksheet
Index of the sheet
Sets the print options.
FarPoint Spread
Worksheet
Index of the sheet
Sets the page breaks.
FarPoint Spread
Worksheet
Index of the sheet
Sets the header and footer.
FarPoint Spread
Worksheet
Index of the sheet
Sets the page setup.
FarPoint Spread
Worksheet
Index of the sheet
header margin
footer margin
Sets the margins.
FarPoint Spread
Worksheet
Index of the sheet
header margin
footer margin
Sets the color of the gridlines.
FarPoint Spread
Index of the sheet
ct sheet view
Sets the show elements.
FarPoint Spread
Index of the sheet
ct sheet view
Sets the zoom scale.
FarPoint Spread
Index of the sheet
ct sheet view
Sets the active cell and selections.
FarPoint Spread
Index of the sheet
ct sheet view
Sets the panes.
FarPoint Spread
Index of the sheet
ct sheet view
Sets the notes.
FarPoint Spread
Index of the sheet
sheetview file
m folder
An array of objects which specify shapeNote setting
Import the drawing part of note
FarPoint Spread
Themes Styles
Index of the sheet
SheetView File
Memory Folder
Array of objects which specify shapeNote setting
Sets the rows and cells.
FarPoint Spread
Worksheet
string table
Index of the sheet
Height of the default row
Whether only data
Whether to load formulas
Formula setter
Sets the merge cells.
FarPoint Spread
Worksheet
Index of the sheet
Sets the columns.
FarPoint Spread
Worksheet
Index of the sheet
Width of the character
Width of the default column
Whether need to extend
Sets the height of the default width and.
FarPoint Spread
Worksheet
Index of the sheet
Width of the char
Height of the default row
Width of the default col
Sets the dimmensions.
FarPoint Spread
Worksheet
Index of the sheet
Gets the cell ranges.
sqref
row first
row last
col first
col last
Gets the width of the char.
if set to true [get default font name from resource]
char width
Int32s the try parse.
s
result
successful or not
Double32s the try parse.
s
result
successful or not
Truncates the specified value.
value
value after truncate.
Toes the pixel.
number of char
Width of the char
pixel value
Toes the number of char.
pixel
Width of the char
number of char
Sets the margins.
FarPoint Spread
ChartSheet
Index of the sheet
header margin
footer margin
Sets the page setup.
FarPoint Spread
CT_Chartsheet
Index of the sheet
header margin
footer margin
Sets the header and footer.
FarPoint Spread
chartSheet
Index of the sheet
Reset property value because excel chart does not support the property in specifal scenario.
Get PlotArea Type
Save and Load notes
Toes the spread.
ct comments
notes list
Export context of note to comment.xml File
FarPoint Spread
Index of SheetView
NoteShape
Save Note Shape Info to Excel
Excel Note Shape
Set BoolProperty to Container
BoolProperty Value
BoolProperty Container
Save and Load Workbook
Synchronizes Spread to Excel XML.
Spread
Workbook file
Excel save flags
Memory folder
instance of CT_Workbook
Saves the custom names.
FarPoint Spread
ct workbook
Saves the worksheets.
FarPoint Spread
Workbook file
Memory folder
Workbook
Number of sheets
Workbook file path
Styles
Selected tab
Excel save flags
Saves the workbook view.
FarPoint Spread
ct workbook
Synchronizes Excel XML to Spread.
FarPoint Spread component
Workbook
Workbook file
Excel sheet index
Array list of sheet names
Excel open flags
Memory folder
Boolean: true if successful; false otherwise
Gets the custom names.
Spread
Workbook
Excel sheet index
Gets the worksheets.
FarPoint Spread
workbook
workbook file
m folder
ws serializer
if set to true [result]
string table
styles
themes
tab sel
Gets the workbook view.
FarPoint Spread
workbook
tab sel
if set to true [disp tabs]
tab cur
tab first
tab ratio
if set to true [need reset tabs]
Save and Load package information
Toes the spread.
memory folder
Instance of XFile
Loads the X file relation files.
x file
m folder
Fixes the name of the file.
Name of the file
file name.
Toes the object.
root file
memory folder
successful or not
Saves the X file relation files.
x file
m folder
Represents a class to save and load Spread sheet drawings objects.
Loads drawing objects from Excel 2007 files to Spread.
The spread.
The themes.
Index of the sheet.
The drawing file.
The memory folder.
trueif drawings are loaded successfully; otherwise, false.
Saves drawing objects to Excel 2007 files.
The spread.
Index of the sheet.
Returns the drawing object which can be saved to XML directly.
Removes the drawing objects that are out of the bound.
The absolute anchor list.
The one cell anchor list.
The two cell anchor list.
Xml files
Initializes a new instance of the class.
Name of the file
Type of the file
Gets the type of the file by.
type
Gets the file by relation ID.
id
Instance of XFile
Adds the relation file.
file
relation id.
Generates the next available key for relationship.
Determines whether the specified name of relation file exist.
The name of relation file.
true if the specified name of file exist; otherwise, false.
Gets the relation file by its name.
The file name.
Returns the file.
Gets the relation id by its name.
The file name.
Returns the relation id of the file.
Gets the relation file list by type.
The type of the relation file.
Returns the list of relation file.
Removes the relation file by its name.
The file name
true if the relation file is removed successfully, otherwise, false.
Gets the name of the file.
The name of the file.
Gets the type of the file.
The type of the file.
Gets the relation files.
The relation files.
Serializer builder
Gets the serializer by type.
type
serializer
Xml File Serializer
stream serializer
Stream serializer
Serializes the specified stream.
stream
obj
Deserializes the specified stream.
stream
deserialized object
Gets the type.
The type.
Initializes a new instance of the class.
type
Does the serialize.
serializer
stream
obj
Does the deserialize.
serializer
stream
Serializes the specified stream.
stream
obj
Deserializes the specified stream.
stream
deserialized object
Gets the type.
The type.
Gets the XML serializer.
The XML serializer.
Initializes a new instance of the class.
type
Serializes the specified file name.
Name of the file
obj
Deserializes the specified file name.
Name of the file
deserialized object
Represents the xlxs memory folder helper to inspect the memory folder object.
Checks whether the specified memory folder contains the VBA projects.
The memory folder.
true if the VBA project exist; otherwise, false.
Interface that supports reading and writing Excel XML.
Get the right to left of Spread.
Handles Excel XML.
Sets the Excel XML style.
Excel XML style
Name of style
Style identifier, index
Gets the Excel XML default row height.
Sheet index
Row height
Sets the Excel XML default row height.
Sheet index
Row height
Gets the Excel XML default column width.
Sheet index
Column width
Sets the Excel XML default column width.
Sheet index
Column width
Sets the Excel XML column information.
Sheet index
First column index
Last column index
Style identifier index
Width
Whether column is hidden
Outline level
Whether collapsed
Whether need to extend
Sets the Excel XML row information.
Sheet index
Row index
Index of column first definition
Index of column first definition plus one
Style index
Height
Whether row is hidden
Outline level
Whether collapsed
Sets the Excel XML cell format.
Sheet index
Row index
Column index
Style index
Sets the Excel XML sheet visibility.
Sheet index
Whether sheet is visible
Sets the Excel XML custom names.
List of sheet indexes
List of custom names
List of custom name definitions
Gets the Excel XML column width.
Sheet index
Column width
Gets the Excel XML forumla string.
Formula
Row index
Column index
Sets the Excel XML Page setup.
Sheet index
Paper size
Scaling factor
Starting page
Width
Height
Whether left-to-right
Whether portrait page orientation
Whether no pls
Whether no color
Whether draft
Whether to print notes
Whether no orientation
Whether use page
Print resolution
Vertical print resolution
Number header
Number footer
Copies
Gets the Excel XML page setup.
Sheet index
Paper size
Scaling factor
Starting page
Width
Height
Whether left-to-right
Whether portrait page orientation
Whether no pls
Whether no color
Whether draft
Whether to print notes
Whether no orientation
Whether use page
Print resolution
Vertical print resolution
Number header
Number footer
Copies
Gets the Excel XML custom names.
Hash table of custom names
Sets the Excel XML conditional format.
Sheet index
Array of first rows
Array of last rows
Array of first columns
Array of last columns
Comparison operator
Excel format
Whether the font is set
Font style
Font height
First condition
Last condition
Get the Excel XML conditional format.
Sheet index
Row indexes
Column indexes
Cross-reference lists
Lists of first conditions
Lists of last conditions
Options lists
Sets the Excel XML auto filter.
Sheet index
Starting column index
Ending column index
Starting row index
Ending row index
Filter string
Gets the Excel XML auto filter.
Sheet index
Starting column index
Ending column index
Starting row index
Ending row index
Filter string
Filtered-out rows
Gets the Excel XML column header row count.
Sheet index
Gets the Excel XML row header column count.
Sheet index
Sets the Excel XML validation data.
Sheet index
Validation list for the cell range
Formula
Sets the Excel XML cell formula.
Sheet index
Row index
Column index
Formula
Shared list
Gets the Excel xml shapes.
The sheet index.
The themems.
The drawing objects.
The blips.
true if successfully; otherwise, false.
Sets the Excel xml shapes.
The sheet index.
The absolute anchor list.
The one cell anchor list.
The two cell anchor list.
The blips.
true if successfully; otherwise, false.
Offset Value for Note Anchor
Offset Value
Interface that supports reading Excel XML.
Interface that supports writing Excel XML.
Represents a class to operate file allocation table of compound file.
Gets the sector number list by its start sector number.
The start index.
Returns the sector number list.
Allocates the specified number and type of sectors.
The sector count.
The sector type.
Returns the first sector number.
Adds the range of file allocation table.
The collection.
Removes the range of file allocation table.
The start index.
The count.
Convert the file allocation table to array.
Returns the array.
Adds the specified sector number to file allocation table.
The sector number.
Reads the specified count of file allocation table from the stream.
The reader.
The count.
Writes the specified file allocation table to the stream.
The writer.
The start index.
The count.
Clones this instance.
Returns the cloned file allocation table.
Gets the next sector number of the specified sector.
Returns the next sector number.
Gets the count of the file allocation table.
Represents the sector type of the compound file.
Represents the compound file header sector.
An int value indicates the size of compound file header.
An int value indicates the max length of of DIFAT in header.
Reads the compound file header from the stream.
The reader.
Writes the compound file header to the stream.
The writer.
Clones this instance.
Returns the cloned compound file header.
This field MUST be set to 0x0009, or 0x000c, depending on the Major Version field. This field
specifies the sector size of the compound file as a power of 2.
If Major Version is 3, then the Sector Shift MUST be 0x0009, specifying a sector size of 512 bytes
If Major Version is 4, then the Sector Shift MUST be 0x000C, specifying a sector size of 4096 bytes.
This field MUST be set to 0x0006. This field specifies the sector size of the Mini Stream as
a power of 2. The sector size of the Mini Stream MUST be 64 bytes.
Gets or sets the main BAT(block allocation table) count, every main BAT block
contains some block indexes which used to find the sectors that contain block allocation
table.
This integer field contains the starting sector number for the Storage Stream.
This integer field MUST be set to 0x00001000. This field specifies the maximum size of a
user-defined data stream allocated from the mini FAT and mini stream, and that cutoff is
4096 bytes. Any user-defined data stream larger than or equal to this cutoff size must
be allocated as normal sectors from the FAT.
This integer field contains the starting sector number for the mini FAT.
This integer field contains the mini sector count for the mini FAT.
This integer field contains the starting sector number for the DIFAT.
This integer field contains the count of the number of DIFAT sectors in the compound file.
This array of 32-bit integer fields contains the first 109 FAT sector locations of the compound file.
Represents a class to operate Microsoft Compound Stream Binary (CFB) file format. The format
was also known as the Object Linking and Embedding (OLE) or Component Object Model (COM)
structured storage compound file implementation binary file format.
Represents the compound file header signature.
Represents the compound file sector size. (V3 only)
Represents the compound file mini sector size.
Represents the compound file directory entry size.
Represents the maximum regular sector number.
Specifies a DIFAT sector in the FAT
Specifies a FAT sector in the FAT
End of linked chain of sectors
Specifies unallocated sector in the FAT, Mini FAT, or DIFAT
Specifies the root directory entry name.
Specifies the cutoff size of the mini stream.
Represents the header of this compound file.
Represents the directory entries of this compound file.
Represents the double indirect file allocation table of this compound file.
Represents the file allocation table of this compound file.
Represents the mini file allocation table of this compound file.
Represents the removing directory entries of the compound file.
Initializes a new instance of the class.
Adds the storage to the root directory.
Adds the storage to the specified parent storage.
The name of the storage.
The name of the parent storage.
true if the storage is added successfully; otherwise, false.
Determines whether the specified name of storage exists.
The name of the storage.
The name of the parent storage.
true if the specified name of storage exists; otherwise, false.
Removes the storage.
The name.
Name of the parent.
true if the storage is removed successfully; otherwise false.
Adds the stream to the root directory.
The name of the stream.
The bytes that will be written into the compund file.
Adds the stream to the specified parent storage.
The name of the stream.
The bytes that will be written into the compund file.
The name of the parent storage.
Determines whether the specified name of stream exists.
The name of the stream.
The name of the parent storage.
true if the specified name of stream exists; otherwise, false.
Removes the stream from the specified parent storage.
The name of the stream.
The name of the parent storage.
true if the stream is removed successfully; otherwise false.
Gets the specified stream from the compound file root storage.
The name of the stream.
Returns the bytes of the specified stream.
Gets the specified stream from the compound file.
The name of the stream.
The parent storage name of the stream.
Returns the bytes of the specified stream.
Gets the name of the parent storage.
The name.
Returns the name of the parent storage.
Gets the child stream names of the spcified parent storage name.
The name.
Returns the list of child stream names.
Gets the child storage names of the specified parent storage name.
The name.
Returns the list of child stream names.
Gets the directory entry.
Name of the directory entry.
Returns the directory entry object.
Sets the directory entry.
The directory entry.
Reads the compound file from the specified stream.
Writes the compound file to the specified stream.
Clones this instance.
Returns the cloned compound file object.
Determines whether the input file is a legal compound file.
The name of the file.
true if it's a compound file; otherwise, false.
Determines whether the input stream is a legal compound file stream.
The stream.
true if it's a compound file stream; otherwise, false.
Determines whether the input stream is a valid compound file.
The reader.
true if file is valid; otherwise, false.
Reads the header of the compound file.
Reads the file allocation table from the input stream.
Reads the directory entries from the input stream.
Gets the directory contents from input stream.
The directoryEntry.
The reader.
Returns the byte array of the specified directory entry.
Gets the sector contents from the input stream.
The start sector.
The reader.
Returns the byte array of the specified sector number.
Gets the mini sector contents from the input stream.
The start sector.
The reader.
Returns the byte array of the specified mini sector number.
Makes the continuous sectors.
The input sector number list.
Returns the merged sector number list.
Populate all stream fields for the compound file.
Fills all empty directory entries in the sector.
Gets the total user data sector count.
Returns the sector count.
Gets the total user data mini sector count.
Returns the mini sector count.
Populates all user data sectors and mini sectors.
Write this compound file to the output stream.
Moves current stream position to the specified sector number.
The index.
The reader.
Moves current stream position to the specified sector number.
The index.
The writer.
Moves current stream position to the specified mini sector number.
The index.
The reader.
Moves current stream position to the specified mini sector number.
The index.
The writer.
Gets the sibling directory entry ids of the specified entry.
The id.
The id list.
Balances the sibling directory entry ids.
The index.
From index.
To index.
The ids.
Resets all sibling directory entry ids.
The ids.
Search all removing the specified directory entry and all its child entries.
The id.
Starts to remove the directory entries from the compound file.
Ends to remove the directory entries from the compound file.
Gets the header of this compound file.
The header.
Gets the directory entries of this compound file.
The directory entries.
Gets the difat list of this compound file.
The difat list.
Gets the fat list of this compound file.
The fat list.
Gets the mini fat list of this compound list.
The mini fat list.
Represents some continuous sectors.
An int value indicates the start block index.
An int value indicates the count of continuous sectors.
Initialize a struct with its start index
and block count.
Represents the entry object type of the compound file.
Represents the color of directory entry. The directory entries is a red-black tree.
Represents the directory entry of the compound file.
Represents the directory entry size in bytes.
An int value indicates the there is no stream.
For a version 3 compound file with 512-byte sector size, the high DWORD MAY be uninitialized
or non-zero. Implementations MUST ignore the high DWORD when reading a version 3 compound file,
and MUST set the high DWORD to zero when writing a version 3 compound file.
Reads the directory entry from the input stream.
The reader.
Writes the directory entry to the out stream.
The writer.
Gets the normal sector count of this directory entry.
Returns the normal sector count.
Gets the mini sector count of this directory entry.
Returns the mini sector count.
Determines whether the storing stream is mini steam.
true if it is mini steam; otherwise, false.
Clones this instance.
Returns the cloned directory entry object.
This field MUST contain a Unicode string for the storage or stream name encoded in UTF-16.
The name MUST be terminated with a UTF-16 NUL character. Thus storage and stream names are
limited to 32 UTF-16 code points, including the NUL terminator character. When locating an
object in the compound file except for the root storage, the directory entry name is compared
using a special case-insensitive upper-case mapping, described in Red-Black Tree. The following
characters are illegal and MUST NOT be part of the name: '/', '\', ':', '!'.
This field contains the creation time for a storage object. The Windows FILETIME structure
is used to represent this field in UTC. If there is no creation time set on the object, this
field MUST be all zeroes. For a root storage object, this field MUST be all zeroes, and the
creation time is retrieved or set on the compound file itself.
This field contains the modification time for a storage object. The Windows FILETIME structure
is used to represent this field in UTC. If there is no modified time set on the object, this
field MUST be all zeroes. For a root storage object, this field MUST be all zeroes, and the
modified time is retrieved or set on the compound file itself.
This field MUST be 0x00 (red) or 0x01 (black).
This field MUST be 0x00, 0x01, 0x02, or 0x05, depending on the actual type of object.
This field contains the Stream ID of the left sibling. If there is no left sibling, the field
MUST be set to NOSTREAM (0xFFFFFFFF).
This field contains the Stream ID of the right sibling. If there is no right sibling, the field
MUST be set to NOSTREAM (0xFFFFFFFF).
This field contains the Stream ID of a child object. If there is no child object, then the field
MUST be set to NOSTREAM (0xFFFFFFFF).
This field contains the first sector location if this is a stream object. For a root storage
object, this field MUST contain the first sector of the mini stream, if the mini stream exists.
This 64-bit integer field contains the size of the user-defined data, if this is a stream object.
For a root storage object, this field contains the size of the mini stream.
Gets or sets the content of current directory entry.
Represents the directory entry collection.
Represents a list of directory entries.
Adds the with the specified name.
The name.
Returns the new added directory entry.
Adds the specified directory entry.
The directory entry.
Clear all s in the .
Finds the specified directory entry by its name.
The name.
Returns the directory entry.
Determines whether the specified directory entry exists.
The name.
true if exists; otherwise, false.
Removes the specified directory entry by name.
The name of removing directory entry.
true if the directory entries are removed, otherwise false.
Clones this instance.
Returns the cloned directory entry collection.
Reads the directory entries from the input stream.
The reader.
The count.
Writes the directory entries to the output stream.
The writer.
The start index.
The count.
Determines whether the contains a specific value.
The object to locate in the .
true if is found in the ; otherwise, false.
Copies the elements of the to an , starting at a particular index.
The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
The zero-based index in at which copying begins.
Removes the first occurrence of a specific object from the .
The object to remove from the .
true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
Removes the directory entry at the specified index.
The index.
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
Gets the count of directory entries.
Gets the at the specified index.
The directory entry.
Gets the with the specified name.
The directory entry.
Gets a value indicating whether the is read-only.
true if the is read-only; otherwise, false.
Represents all documented xls directory entry names.
Represents all documented xlsx directory entry names.
Decrypt Stream
Encrypt Stream
AES 0x00000080, 0x000000C0, 0x00000100
128, 192 256-bit
Represents a class to help the procedure of reading and writing encrypted office 12 xlsx files.
check whether string contain unicode characters
String value
true if it is highByte
This class is a helper that used to read a rich string from BIFF record
This could be extent more in the future if needed
Used to connect to one particular stream
Read a string from the stream
Reference to a String object
Number of charaters of the String
False when stream is NULL
Read a string from a particular tream from the current possition
Reference to a String object
Number of charaters of the String
The stream that contain the String
Read a string from a particular BinaryReader
Reference to a String object
The stream that contain the String
The BinaryReader