This class parses Quattro Pro spreadsheet: .wb1, ..., .wb3. More...
#include <Quattro.h>
Public Member Functions | |
QuattroParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN, char const *password=nullptr) | |
constructor | |
~QuattroParser () final | |
destructor | |
void | parse (librevenge::RVNGSpreadsheetInterface *documentInterface) final |
called by WPSDocument to parse the file | |
bool | checkHeader (WPSHeader *header, bool strict=false) |
checks if the document header is correct (or not) | |
Public Member Functions inherited from WKSParser | |
WKSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header) | |
virtual | ~WKSParser () |
Protected Member Functions | |
int | version () const |
return the file version | |
libwps_tools_win::Font::Type | getDefaultFontType () const |
returns the default font type, ie. | |
bool | getExternalFileName (int fId, librevenge::RVNGString &fName) const |
returns the name of the fId file | |
bool | getField (int fId, librevenge::RVNGString &text, QuattroFormulaInternal::CellReference &ref, librevenge::RVNGString const &fileName) const |
returns the text and cell of a field instruction | |
bool | getColor (int id, WPSColor &color) const |
returns the color corresponding to an id | |
bool | getFont (int id, WPSFont &font, libwps_tools_win::Font::Type &type) const |
returns the font corresponding to an id | |
Vec2f | getCellPosition (int sheetId, Vec2i const &cell) const |
returns the beginning position of a cell | |
bool | sendPageGraphics (int sheetId) const |
send the page graphic corresponding to a sheet | |
bool | sendGraphics (int sheetId, Vec2i const &cell) const |
send the graphic corresponding to a cell | |
std::shared_ptr< WKSContentListener > | createListener (librevenge::RVNGSpreadsheetInterface *interface) |
creates the main listener | |
void | sendHeaderFooter (bool header) |
send the header/footer | |
bool | checkHeader (std::shared_ptr< WPSStream > stream, bool strict) |
checks if the document header is correct (or not) | |
bool | readZones () |
finds the different zones (spreadsheet, chart, print, ...) | |
bool | readOLEZones (std::shared_ptr< WPSStream > &stream) |
finds the different OLE zones: wb2 | |
bool | readZone (std::shared_ptr< WPSStream > &stream) |
try to read a zone | |
bool | readFieldName (std::shared_ptr< WPSStream > stream) |
read a list of field name + ...: zone b | |
bool | readExternalData (std::shared_ptr< WPSStream > stream) |
read a external filename/name: zone 97,98 | |
bool | readFontDef (std::shared_ptr< WPSStream > stream) |
read a font: zone cf, fc and 110 | |
bool | readColorList (std::shared_ptr< WPSStream > stream) |
read a color lits: zone e8 | |
bool | readStyleName (std::shared_ptr< WPSStream > stream) |
read a style name: zone d0 | |
bool | readHeaderFooter (std::shared_ptr< WPSStream > stream, bool header) |
reads the header/footer: zone 25,26 | |
bool | readPaneAttribute (std::shared_ptr< WPSStream > stream) |
read the pane attribute: d1 | |
bool | readOptimizer (std::shared_ptr< WPSStream > stream) |
read the first optimizer zone: 103 | |
bool | readQueryCommand (std::shared_ptr< WPSStream > stream) |
read the table query command zone: 12f | |
bool | readCString (std::shared_ptr< WPSStream > stream, librevenge::RVNGString &string, long maxSize) |
try to read a basic C string, knowing the maximum size | |
bool | readBlockList (std::shared_ptr< WPSStream > stream) |
reads some cell reference list (potential followed by other data) | |
bool | readZone341 (std::shared_ptr< WPSStream > stream) |
reads a big zone(chart?) which contains sub zones: 341 | |
bool | parseOLEStream (RVNGInputStreamPtr input, std::string const &avoid="") |
try to parse the OLE stream(except the main stream) | |
bool | readOleLinkInfo (std::shared_ptr< WPSStream > stream, librevenge::RVNGString &link) |
try to read the link info sub stream | |
RVNGInputStreamPtr | decodeStream (RVNGInputStreamPtr input, std::vector< uint8_t > const &key) const |
try to decode a stream, if successful, replace the stream'input by the new one | |
Protected Member Functions inherited from WKSParser | |
RVNGInputStreamPtr & | getInput () |
void | resetInput (RVNGInputStreamPtr const &newInput) |
RVNGInputStreamPtr | getFileInput () |
WPSHeaderPtr & | getHeader () |
int | version () const |
void | setVersion (int vers) |
libwps::DebugFile & | ascii () |
a DebugFile used to write what we recognize when we parse the document |
Static Protected Member Functions | |
static bool | readCellPosition (std::shared_ptr< WPSStream > stream) |
read the cell's position: zone 96 | |
static bool | readSerieExtension (std::shared_ptr< WPSStream > stream) |
read the serie extension zone: 2dc | |
static bool | readOleBOlePart (std::shared_ptr< WPSStream > stream) |
try to read the BOlePart sub stream: a zone which contains 5 long |
Protected Attributes | |
std::shared_ptr< WKSContentListener > | m_listener |
std::shared_ptr< QuattroParserInternal::State > | m_state |
the listener (if set) | |
std::shared_ptr< QuattroGraph > | m_graphParser |
the graph manager | |
std::shared_ptr< QuattroSpreadsheet > | m_spreadsheetParser |
the spreadsheet manager |
Friends | |
class | QuattroParserInternal::SubDocument |
class | QuattroGraph |
class | QuattroSpreadsheet |
This class parses Quattro Pro spreadsheet: .wb1, ..., .wb3.
QuattroParser::QuattroParser | ( | RVNGInputStreamPtr & | input, |
WPSHeaderPtr & | header, | ||
libwps_tools_win::Font::Type | encoding = libwps_tools_win::Font::UNKNOWN, | ||
char const * | password = nullptr ) |
constructor
|
final |
destructor
|
protected |
checks if the document header is correct (or not)
bool QuattroParser::checkHeader | ( | WPSHeader * | header, |
bool | strict = false ) |
checks if the document header is correct (or not)
Referenced by checkHeader(), libwps::WPSDocument::isFileFormatSupported(), parse(), and QuattroSpreadsheet.
|
protected |
creates the main listener
Referenced by parse(), and QuattroSpreadsheet.
|
protected |
try to decode a stream, if successful, replace the stream'input by the new one
Referenced by QuattroSpreadsheet, and readZone().
returns the beginning position of a cell
Referenced by QuattroSpreadsheet.
|
protected |
returns the color corresponding to an id
Referenced by QuattroSpreadsheet, and readPaneAttribute().
|
protected |
returns the default font type, ie.
the encoding given by the constructor if given or the encoding deduced from the version.
Referenced by parseOLEStream(), QuattroSpreadsheet, readCString(), and readFontDef().
|
protected |
returns the name of the fId file
Referenced by QuattroSpreadsheet.
|
protected |
returns the text and cell of a field instruction
Referenced by QuattroSpreadsheet.
|
protected |
returns the font corresponding to an id
Referenced by QuattroSpreadsheet.
|
finalvirtual |
|
protected |
try to parse the OLE stream(except the main stream)
Referenced by QuattroSpreadsheet, readOLEZones(), and readZones().
|
protected |
reads some cell reference list (potential followed by other data)
Referenced by QuattroSpreadsheet, and readZone().
|
staticprotected |
read the cell's position: zone 96
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read a color lits: zone e8
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
try to read a basic C string, knowing the maximum size
Referenced by QuattroSpreadsheet, readExternalData(), readFieldName(), readFontDef(), readHeaderFooter(), readOleLinkInfo(), readOLEZones(), readStyleName(), and readZone().
|
protected |
read a external filename/name: zone 97,98
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read a list of field name + ...: zone b
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read a font: zone cf, fc and 110
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
reads the header/footer: zone 25,26
Referenced by QuattroSpreadsheet, and readZone().
|
staticprotected |
try to read the BOlePart sub stream: a zone which contains 5 long
Referenced by parseOLEStream(), and QuattroSpreadsheet.
|
protected |
try to read the link info sub stream
Referenced by parseOLEStream(), and QuattroSpreadsheet.
|
protected |
finds the different OLE zones: wb2
Referenced by QuattroSpreadsheet, and readZones().
|
protected |
read the first optimizer zone: 103
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read the pane attribute: d1
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read the table query command zone: 12f
Referenced by QuattroSpreadsheet, and readZone().
|
staticprotected |
read the serie extension zone: 2dc
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
read a style name: zone d0
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
try to read a zone
Referenced by checkHeader(), QuattroSpreadsheet, readZone(), readZone341(), and readZones().
|
protected |
reads a big zone(chart?) which contains sub zones: 341
Referenced by QuattroSpreadsheet, and readZone().
|
protected |
finds the different zones (spreadsheet, chart, print, ...)
Referenced by parse(), and QuattroSpreadsheet.
|
protected |
send the graphic corresponding to a cell
Referenced by QuattroSpreadsheet.
|
protected |
send the header/footer
Referenced by QuattroParserInternal::SubDocument::parse(), and QuattroSpreadsheet.
|
protected |
send the page graphic corresponding to a sheet
Referenced by QuattroSpreadsheet.
|
protected |
return the file version
Referenced by decodeStream(), QuattroSpreadsheet, readZone341(), and readZones().
|
friend |
Referenced by QuattroGraph, and QuattroParser().
|
friend |
|
friend |
Referenced by QuattroParser(), and QuattroSpreadsheet.
|
protected |
the graph manager
Referenced by parse(), parseOLEStream(), QuattroParser(), readZone(), readZones(), sendGraphics(), and sendPageGraphics().
|
protected |
Referenced by parse(), QuattroParser(), and sendHeaderFooter().
|
protected |
the spreadsheet manager
Referenced by createListener(), getCellPosition(), parse(), QuattroParser(), readBlockList(), readFieldName(), readOptimizer(), readQueryCommand(), readZone(), and readZones().
|
protected |
the listener (if set)
the internal state
Referenced by checkHeader(), checkHeader(), createListener(), getColor(), getDefaultFontType(), getExternalFileName(), getField(), getFont(), parseOLEStream(), QuattroParser(), readColorList(), readExternalData(), readFieldName(), readFontDef(), readHeaderFooter(), readZone(), readZone341(), readZones(), sendHeaderFooter(), and version().