This class parses Microsoft Works spreadsheet file. More...
#include <LotusSpreadsheet.h>
| Public Member Functions | |
| LotusSpreadsheet (LotusParser &parser) | |
| constructor | |
| ~LotusSpreadsheet () | |
| destructor | |
| void | cleanState () | 
| clean internal state | |
| void | updateState () | 
| update internal state (must be called one time before sending data) | |
| void | setListener (WKSContentListenerPtr &listen) | 
| sets the listener | |
| void | setLastSpreadsheetId (int id) | 
| set the last spreadsheet number ( default 0) | |
| bool | getLeftTopPosition (Vec2i const &cell, int spreadsheet, Vec2f &pos) | 
| returns the left top position of a cell | |
| Protected Member Functions | |
| int | version () const | 
| return the file version | |
| bool | hasSomeSpreadsheetData () const | 
| returns true if some spreadsheet are defined | |
| void | sendSpreadsheet (int sheetId) | 
| send the data | |
| librevenge::RVNGString | getSheetName (int id) const | 
| returns the name of the id's spreadsheet | |
| void | sendRowContent (LotusSpreadsheetInternal::Spreadsheet const &sheet, int row, LotusSpreadsheetInternal::Table123Styles const *table123Styles) | 
| send the cell data in a row | |
| void | sendCellContent (LotusSpreadsheetInternal::Cell const &cell, LotusSpreadsheetInternal::Style const &style, int numRepeated=1) | 
| send the cell data | |
| void | sendText (RVNGInputStreamPtr &input, long endPos, LotusSpreadsheetInternal::Style const &style) const | 
| try to send a formated text | |
| void | sendTextNote (RVNGInputStreamPtr &input, WPSEntry const &entry) const | 
| try to send a note | |
| bool | readSheetName (std::shared_ptr< WPSStream > stream) | 
| reads a sheet name: zone 0x23 | |
| bool | readSheetName1B (std::shared_ptr< WPSStream > stream, long endPos) | 
| reads a sheet name: zone 0x1b 36b0 | |
| bool | readCellsFormat801 (std::shared_ptr< WPSStream > stream, WPSVec3i const &minC, WPSVec3i const &maxC, int typeZone) | 
| reads a cell zone formats: zone 801, lotus 123 | |
| bool | readColumnDefinition (std::shared_ptr< WPSStream > stream) | 
| reads the columns definitions | |
| bool | readColumnSizes (std::shared_ptr< WPSStream > stream) | 
| reads the column sizes ( in char ) | |
| bool | readRowFormats (std::shared_ptr< WPSStream > stream) | 
| reads the row formats | |
| bool | readRowFormat (std::shared_ptr< WPSStream > stream, LotusSpreadsheetInternal::Style &style, int &numCell, long endPos) | 
| reads a cell's row format | |
| bool | readRowSizes (std::shared_ptr< WPSStream > stream, long endPos) | 
| reads the row size ( in pt*32 ) | |
| bool | readCell (std::shared_ptr< WPSStream > stream) | 
| reads a cell | |
| bool | readCellName (std::shared_ptr< WPSStream > stream) | 
| reads a cell or list of cell name | |
| bool | readSheetHeader (std::shared_ptr< WPSStream > stream) | 
| try to read a sheet header: 0xc3 | |
| bool | readExtraRowFormats (std::shared_ptr< WPSStream > stream) | 
| try to read an extra row format: 0xc5 | |
| bool | readCell (WPSStream &stream, int sId, bool isList, WKSContentListener::FormulaInstruction &instr) | 
| bool | readFormula (WPSStream &stream, long endPos, int sId, bool newFormula, std::vector< WKSContentListener::FormulaInstruction > &formula, std::string &error) | 
| Static Protected Member Functions | |
| static bool | readNote (std::shared_ptr< WPSStream > stream, long endPos) | 
| try to read a note: subZone id 9065 | |
| static bool | parseVariable (std::string const &variable, WKSContentListener::FormulaInstruction &instr) | 
| static std::string | getDebugStringForText (std::string const &text) | 
| small debug function used to print text with format sequence | |
| Private Member Functions | |
| LotusSpreadsheet (LotusSpreadsheet const &orig)=delete | |
| LotusSpreadsheet & | operator= (LotusSpreadsheet const &orig)=delete | 
| Private Attributes | |
| std::shared_ptr< WKSContentListener > | m_listener | 
| LotusParser & | m_mainParser | 
| the listener (if set) | |
| std::shared_ptr< LotusStyleManager > | m_styleManager | 
| the style manager | |
| std::shared_ptr< LotusSpreadsheetInternal::State > | m_state | 
| the internal state | |
| Friends | |
| class | LotusParser | 
| class | LotusSpreadsheetInternal::SubDocument | 
This class parses Microsoft Works spreadsheet file.
| 
 | explicit | 
constructor
Referenced by LotusSpreadsheet(), and operator=().
| LotusSpreadsheet::~LotusSpreadsheet | ( | ) | 
destructor
| 
 | privatedelete | 
| void LotusSpreadsheet::cleanState | ( | ) | 
clean internal state
| 
 | staticprotected | 
small debug function used to print text with format sequence
Referenced by readCell(), and readNote().
returns the left top position of a cell
| 
 | protected | 
returns the name of the id's spreadsheet
Referenced by readCell(), readFormula(), and sendSpreadsheet().
| 
 | protected | 
returns true if some spreadsheet are defined
| 
 | privatedelete | 
| 
 | staticprotected | 
Referenced by readFormula().
| 
 | protected | 
reads a cell
Referenced by readFormula().
| 
 | protected | 
| 
 | protected | 
reads a cell or list of cell name
| 
 | protected | 
reads a cell zone formats: zone 801, lotus 123
| 
 | protected | 
reads the columns definitions
| 
 | protected | 
reads the column sizes ( in char )
| 
 | protected | 
try to read an extra row format: 0xc5
| 
 | protected | 
Referenced by readCell().
| 
 | staticprotected | 
try to read a note: subZone id 9065
| 
 | protected | 
reads a cell's row format
Referenced by readRowFormats().
| 
 | protected | 
reads the row formats
| 
 | protected | 
reads the row size ( in pt*32 )
| 
 | protected | 
try to read a sheet header: 0xc3
| 
 | protected | 
reads a sheet name: zone 0x23
| 
 | protected | 
reads a sheet name: zone 0x1b 36b0
| 
 | protected | 
send the cell data
Referenced by sendRowContent().
| 
 | protected | 
send the cell data in a row
Referenced by sendSpreadsheet().
| 
 | protected | 
send the data
| 
 | protected | 
try to send a formated text
Referenced by sendCellContent().
| 
 | protected | 
try to send a note
| void LotusSpreadsheet::setLastSpreadsheetId | ( | int | id | ) | 
set the last spreadsheet number ( default 0)
| 
 | inline | 
sets the listener
| void LotusSpreadsheet::updateState | ( | ) | 
update internal state (must be called one time before sending data)
| 
 | protected | 
return the file version
Referenced by readCellsFormat801(), readFormula(), and readRowFormat().
| 
 | friend | 
Referenced by LotusParser, LotusSpreadsheet(), and LotusSpreadsheetInternal::SubDocument.
| 
 | friend | 
| 
 | private | 
Referenced by LotusSpreadsheet(), sendCellContent(), sendRowContent(), sendSpreadsheet(), sendText(), sendTextNote(), and setListener().
| 
 | private | 
the listener (if set)
the main parser
Referenced by LotusSpreadsheet(), readRowFormats(), readSheetName(), readSheetName1B(), sendRowContent(), sendSpreadsheet(), sendTextNote(), and version().
| 
 | private | 
the internal state
Referenced by cleanState(), getLeftTopPosition(), getSheetName(), hasSomeSpreadsheetData(), LotusSpreadsheet(), readCell(), readCellName(), readCellsFormat801(), readColumnDefinition(), readColumnSizes(), readExtraRowFormats(), readFormula(), readRowFormats(), readRowSizes(), readSheetHeader(), readSheetName(), readSheetName1B(), sendRowContent(), sendSpreadsheet(), setLastSpreadsheetId(), updateState(), and version().
| 
 | private | 
the style manager
Referenced by LotusSpreadsheet(), readCellsFormat801(), readExtraRowFormats(), readRowFormat(), sendRowContent(), and sendText().