rllib  1
rlspreadsheet.h
Go to the documentation of this file.
00001 /***************************************************************************
00002                           rlspreadsheet.h  -  description
00003                              -------------------
00004     begin                : Tue Jan 02 2001
00005     copyright            : (C) 2001 by Rainer Lehrig
00006     email                : lehrig@t-online.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This library is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE as        *
00013  *   published by the Free Software Foundation                             *
00014  *                                                                         *
00015  ***************************************************************************/
00016 #ifndef _RL_SPREADSHEET_H_
00017 #define _RL_SPREADSHEET_H_
00018 
00019 #include "rldefine.h"
00020 
00024 class rlSpreadsheetCell
00025 {
00026 public:
00027   rlSpreadsheetCell(const char *text=0);
00028   virtual ~rlSpreadsheetCell();
00029   const char *text();
00030   void setText(const char *text);
00031   int  printf(const char *format, ...);
00032   void clear();
00033   void setNextCell(rlSpreadsheetCell *next);
00034   rlSpreadsheetCell *getNextCell();
00035   int  exists();
00036 private:
00037   char *txt;
00038   rlSpreadsheetCell *nextCell;
00039 };
00040 
00044 class rlSpreadsheetRow
00045 {
00046 public:
00048   rlSpreadsheetRow();
00049   virtual ~rlSpreadsheetRow();
00050   const char *text(int column);
00051   void setText(int column, const char *text);
00052   int  printf(int column, const char *format, ...);
00053   void clear();
00054   void setNextRow(rlSpreadsheetRow *next);
00055   rlSpreadsheetRow *getNextRow();
00056   rlSpreadsheetCell *getFirstCell();
00057   void readRow(const unsigned char *line, char delimitor='\t');
00058   void writeRow(void *fp, char delimitor='\t');
00059   int  exists(int column);
00060 private:
00061   rlSpreadsheetCell *firstCell;
00062   rlSpreadsheetRow  *nextRow;
00063 };
00064 
00069 class rlSpreadsheetTable
00070 {
00071 public:
00073   rlSpreadsheetTable(char delimitor='\t');
00074   virtual ~rlSpreadsheetTable();
00075   const char *text(int column, int row);
00076   void setText(int column, int row, const char *text);
00077   int  printf(int column, int row, const char *format, ...);
00078   void clear();
00079   int  read(const char *filename);
00080   int  write(const char *filename);
00081   void setNextTable(rlSpreadsheetTable *next);
00082   rlSpreadsheetTable *getNextTable();
00083   rlSpreadsheetRow *getFirstRow();
00084   int  exists(int column, int row);
00085   void setDelimitor(char delimitor);
00086 private:
00087   char delimitor;
00088   rlSpreadsheetRow   *firstRow;
00089   rlSpreadsheetTable *nextTable;
00090 };
00091 
00096 class rlSpreadsheetWorkbook
00097 {
00098 public:
00100   rlSpreadsheetWorkbook(char delimitor='\t');
00101   virtual ~rlSpreadsheetWorkbook();
00102   const char *text(int column, int row, int page);
00103   void setText(int column, int row, int page, const char *text);
00104   int  printf(int column, int row, int page, const char *format, ...);
00105   void clear();
00106   int  read(const char *filename);
00107   int  write(const char *filename);
00108   int  exists(int column, int row, int page);
00109   rlSpreadsheetTable *getFirstTable();
00110   void setDelimitor(char delimitor);
00111 private:
00112   char delimitor;
00113   rlSpreadsheetTable *firstTable;
00114 };
00115 
00116 #endif