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