QuattroParser Class Referencefinal

This class parses Quattro Pro spreadsheet: .wb1, ..., .wb3. More...

#include <Quattro.h>

Inheritance diagram for QuattroParser:
WKSParser

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 ()
 
virtual void parse (librevenge::RVNGSpreadsheetInterface *documentInterface)=0
 

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< WKSContentListenercreateListener (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
RVNGInputStreamPtrgetInput ()
 
void resetInput (RVNGInputStreamPtr const &newInput)
 
RVNGInputStreamPtr getFileInput ()
 
WPSHeaderPtrgetHeader ()
 
int version () const
 
void setVersion (int vers)
 
libwps::DebugFileascii ()
 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< WKSContentListenerm_listener
 
std::shared_ptr< QuattroParserInternal::Statem_state
 the listener (if set)
 
std::shared_ptr< QuattroGraphm_graphParser
 the graph manager
 
std::shared_ptr< QuattroSpreadsheetm_spreadsheetParser
 the spreadsheet manager
 

Friends

class QuattroParserInternal::SubDocument
 
class QuattroGraph
 
class QuattroSpreadsheet
 

Detailed Description

This class parses Quattro Pro spreadsheet: .wb1, ..., .wb3.

Constructor & Destructor Documentation

◆ QuattroParser()

QuattroParser::QuattroParser ( RVNGInputStreamPtr input,
WPSHeaderPtr header,
libwps_tools_win::Font::Type  encoding = libwps_tools_win::Font::UNKNOWN,
char const *  password = nullptr 
)

constructor

◆ ~QuattroParser()

QuattroParser::~QuattroParser ( )
final

destructor

Member Function Documentation

◆ checkHeader() [1/2]

bool QuattroParser::checkHeader ( std::shared_ptr< WPSStream stream,
bool  strict 
)
protected

checks if the document header is correct (or not)

◆ checkHeader() [2/2]

bool QuattroParser::checkHeader ( WPSHeader header,
bool  strict = false 
)

checks if the document header is correct (or not)

Referenced by checkHeader(), libwps::WPSDocument::isFileFormatSupported(), and parse().

◆ createListener()

std::shared_ptr< WKSContentListener > QuattroParser::createListener ( librevenge::RVNGSpreadsheetInterface *  interface)
protected

creates the main listener

Referenced by parse().

◆ decodeStream()

RVNGInputStreamPtr QuattroParser::decodeStream ( RVNGInputStreamPtr  input,
std::vector< uint8_t > const &  key 
) const
protected

try to decode a stream, if successful, replace the stream'input by the new one

Referenced by readZone().

◆ getCellPosition()

Vec2f QuattroParser::getCellPosition ( int  sheetId,
Vec2i const &  cell 
) const
protected

returns the beginning position of a cell

Referenced by QuattroGraph::sendShape(), and QuattroGraph::sendTextbox().

◆ getColor()

bool QuattroParser::getColor ( int  id,
WPSColor color 
) const
protected

returns the color corresponding to an id

Referenced by QuattroSpreadsheet::readCellStyle(), and readPaneAttribute().

◆ getDefaultFontType()

◆ getExternalFileName()

bool QuattroParser::getExternalFileName ( int  fId,
librevenge::RVNGString &  fName 
) const
protected

returns the name of the fId file

Referenced by QuattroSpreadsheet::readCellReference().

◆ getField()

bool QuattroParser::getField ( int  fId,
librevenge::RVNGString &  text,
QuattroFormulaInternal::CellReference ref,
librevenge::RVNGString const &  fileName 
) const
protected

returns the text and cell of a field instruction

Referenced by QuattroSpreadsheet::readCellReference().

◆ getFont()

bool QuattroParser::getFont ( int  id,
WPSFont font,
libwps_tools_win::Font::Type type 
) const
protected

returns the font corresponding to an id

Referenced by QuattroSpreadsheet::readCellStyle().

◆ parse()

void QuattroParser::parse ( librevenge::RVNGSpreadsheetInterface *  documentInterface)
finalvirtual

called by WPSDocument to parse the file

Implements WKSParser.

◆ parseOLEStream()

bool QuattroParser::parseOLEStream ( RVNGInputStreamPtr  input,
std::string const &  avoid = "" 
)
protected

try to parse the OLE stream(except the main stream)

Referenced by readOLEZones(), and readZones().

◆ readBlockList()

bool QuattroParser::readBlockList ( std::shared_ptr< WPSStream stream)
protected

reads some cell reference list (potential followed by other data)

Referenced by readZone().

◆ readCellPosition()

bool QuattroParser::readCellPosition ( std::shared_ptr< WPSStream stream)
staticprotected

read the cell's position: zone 96

Referenced by readZone().

◆ readColorList()

bool QuattroParser::readColorList ( std::shared_ptr< WPSStream stream)
protected

read a color lits: zone e8

Referenced by readZone().

◆ readCString()

◆ readExternalData()

bool QuattroParser::readExternalData ( std::shared_ptr< WPSStream stream)
protected

read a external filename/name: zone 97,98

Referenced by readZone().

◆ readFieldName()

bool QuattroParser::readFieldName ( std::shared_ptr< WPSStream stream)
protected

read a list of field name + ...: zone b

Referenced by readZone().

◆ readFontDef()

bool QuattroParser::readFontDef ( std::shared_ptr< WPSStream stream)
protected

read a font: zone cf, fc and 110

Referenced by readZone().

◆ readHeaderFooter()

bool QuattroParser::readHeaderFooter ( std::shared_ptr< WPSStream stream,
bool  header 
)
protected

reads the header/footer: zone 25,26

Referenced by readZone().

◆ readOleBOlePart()

bool QuattroParser::readOleBOlePart ( std::shared_ptr< WPSStream stream)
staticprotected

try to read the BOlePart sub stream: a zone which contains 5 long

Referenced by parseOLEStream().

◆ readOleLinkInfo()

bool QuattroParser::readOleLinkInfo ( std::shared_ptr< WPSStream stream,
librevenge::RVNGString &  link 
)
protected

try to read the link info sub stream

Referenced by parseOLEStream().

◆ readOLEZones()

bool QuattroParser::readOLEZones ( std::shared_ptr< WPSStream > &  stream)
protected

finds the different OLE zones: wb2

Referenced by readZones().

◆ readOptimizer()

bool QuattroParser::readOptimizer ( std::shared_ptr< WPSStream stream)
protected

read the first optimizer zone: 103

Referenced by readZone().

◆ readPaneAttribute()

bool QuattroParser::readPaneAttribute ( std::shared_ptr< WPSStream stream)
protected

read the pane attribute: d1

Referenced by readZone().

◆ readQueryCommand()

bool QuattroParser::readQueryCommand ( std::shared_ptr< WPSStream stream)
protected

read the table query command zone: 12f

Referenced by readZone().

◆ readSerieExtension()

bool QuattroParser::readSerieExtension ( std::shared_ptr< WPSStream stream)
staticprotected

read the serie extension zone: 2dc

Referenced by readZone().

◆ readStyleName()

bool QuattroParser::readStyleName ( std::shared_ptr< WPSStream stream)
protected

read a style name: zone d0

Referenced by readZone().

◆ readZone()

bool QuattroParser::readZone ( std::shared_ptr< WPSStream > &  stream)
protected

try to read a zone

Referenced by checkHeader(), readZone(), readZone341(), and readZones().

◆ readZone341()

bool QuattroParser::readZone341 ( std::shared_ptr< WPSStream stream)
protected

reads a big zone(chart?) which contains sub zones: 341

Referenced by readZone().

◆ readZones()

bool QuattroParser::readZones ( )
protected

finds the different zones (spreadsheet, chart, print, ...)

Referenced by parse().

◆ sendGraphics()

bool QuattroParser::sendGraphics ( int  sheetId,
Vec2i const &  cell 
) const
protected

send the graphic corresponding to a cell

Referenced by QuattroSpreadsheet::sendCellContent().

◆ sendHeaderFooter()

void QuattroParser::sendHeaderFooter ( bool  header)
protected

send the header/footer

Referenced by QuattroParserInternal::SubDocument::parse().

◆ sendPageGraphics()

bool QuattroParser::sendPageGraphics ( int  sheetId) const
protected

send the page graphic corresponding to a sheet

Referenced by QuattroSpreadsheet::sendSpreadsheet().

◆ version()

int QuattroParser::version ( ) const
protected

Friends And Related Symbol Documentation

◆ QuattroGraph

friend class QuattroGraph
friend

◆ QuattroParserInternal::SubDocument

◆ QuattroSpreadsheet

friend class QuattroSpreadsheet
friend

Member Data Documentation

◆ m_graphParser

std::shared_ptr<QuattroGraph> QuattroParser::m_graphParser
protected

◆ m_listener

std::shared_ptr<WKSContentListener> QuattroParser::m_listener
protected

Referenced by parse(), and sendHeaderFooter().

◆ m_spreadsheetParser

std::shared_ptr<QuattroSpreadsheet> QuattroParser::m_spreadsheetParser
protected

◆ m_state


The documentation for this class was generated from the following files:

Generated on Thu Jul 20 2023 00:00:00 for libwps by doxygen 1.9.7