| 
    
     | Import Applix Spreadsheet for kspread
 
 
 |  
     | Last update | 03 mar 2001 |  
     | Features | - can import simple and complex Applix Spreadsheet documents - tests the headline of the document
 - converts <, >, &, to < > &
 - converts all applix special characters
 - converts fontsize, fontcolor, horizontal and vertical alignment, bold, italic, underline
 - eats long text strings (more than one row in inputfile)
 - converts different tables inside of one document
 - cellformat: background color, brushstyles, brushcolor
 - cellframe: linewidth, linetype, linecolor
 - row height and column width
 - converting the fontfamily (incl. reading the typeface table)
 - correct process bar value emiting (procent)
 - rows A-Z and greater Z (AA-ZZ) are right translate into integer values
 
 |  
     | Todo | - cellframes: double lines are not supported in kspread till now. So they can't translated correct. - check the row height and column width - they are not right sometimes
 - grouped row and column formats
 - add endoffile checking with dialog in do-while loops
 - detect valueline (can only do textlines)
 - convert a formular, date or something else right with cell references
 - change the printf output to debug (xxxxx) output
 
 |  
     | History | 
        
         | 17 mar 2001 | : | The fontfamily in support (incl. bugfix) Longnamed columns like AA are right supported now- for cell elements and column width elements
 Corrected the row width values. They start with 32768!
 Little code cleanup. Updated the fileformat description.
 |  
         | 13 mar 2001 | : | Added the progress bar value emiting (David Faure) |  
         | 11 mar 2001 | : | Added fileformat description. |  
         | 10 mar 2001 | : | Checked in this version after discussion with David Faure. He told me that he just tried to begin with a applix spreadsheet import filter too. |  
         | 09 mar 2001 | : | Read the row height and column width. |  
         | 03 mar 2001 | : | Reads the typefont and the colortable, converts cmyk to rgb, added some style information (cell and string) |  
         | 24 feb 2001 | : | Add <, >, & and applix character convertation |  
         | 11 feb 2001 | : | Written a filter that only can filter simple applix files |  |  
     | Authors | Enno Bartels |  
     | Links | Applixword example |  
     | Progress report | Fileformat: 
 Main Structure:
 1. Header
 2. Colortable
 3. Fonttable
 ...
 4. View
 ...
 5. Headers and footers
 6. Cellvalues
 7. End
 
 
 1. Header:
 The headerline looks like that:
 *BEGIN SPREADSHEETS VERSION=430/430 ENCODING=7BIT
 
 
 2. Colormap:
 The colormap has 3 parts
 2.1. Starting line
 2.2. Value lines
 2.3. Ending line
 
 2.1. Colormap start:
 The colormap begins with this line
 COLORMAP
 
 2.2. Colormap value:
 A color value line has the following parts (cmyk - colorsystem)
 Text 0 c m y k 0
 
 
 
          
           | 2.2.1. | Text | = Textstring | - |  
           | 2.2.2. | 0 | = NULL | - |  
           | 2.2.3. | c | = cyan | 0-255 |  
           | 2.2.4. | m | = magenta | 0-255 |  
           | 2.2.5. | y | = yellow | 0-255 |  
           | 2.2.6. | k | = black (key) | 0-255 |  
           | 2.2.7. | 0 | = NULL | - |  
 Color converting is very simple cmyk to rgb:
 r = 255 - (c+k)
 g = 255 - (m+k)
 b = 255 - (y+k)
 If the value of r, g or b if less then 0 you must set it to 0 .
 
 For examples inside koffice look a this files too
 koffice/kimageshop/core/kis_color.cc and kis_color.h
 
 
 2.3. Colormap end:
 The colormap ends with this line:
 END COLORMAP
 
 3. Fonttable:
 The fonttable has 3 parts
 3.1. Starting line
 3.2. Value lines
 3.3. Ending line
 
 3.1. Starting line
 The fonttable begins with this line:
 TYPEFACE TABLE
 
 3.2. Value line
 The fonttable value line looks like that:
 Helvetica
 
 3.3. Ending line
 The colormap ends with this line ends with
 END TYPEFACE TABLE
 
 
 4. View:
 Each table has its own view section and everyone has 3 parts
 4.1. Starting line
 4.2. Value lines
 4.3. Ending line
 This is an example with the table name A
 
 4.1. Starting line
 The view of table A begins with this line:
 View Start, Name: ~A:~
 
 4.2. Value lines
 There are different value lines, but all of them start with view
 There are following important value lines:
 4.2.1. Column width
 4.2.2. Row heights
 
 4.2.1. Column width
 In the view of an table block is for example the width of a column:
 View Column Widths: A:3 B:3 C:3 D:3 E:3 F:3 G:4 H:4
 
 4.2.1. Row height
 or the height of a row
 View Row Heights: 3:18 4:24 8:32804
 Attention: If the row value is greater then 32768 you have to calc rowHeight = rowHeight - 32768 to get the right value!
 
 4.3. Ending line
 The view of table A ends with this line:
 View End, Name: ~A:~
 
 
 5. Headers and footers:
 The headers and footers section has 3 parts
 5.1. Starting line
 5.2. Value lines
 5.3. Ending line
 
 5.1. Starting line
 The headers and footers section begins with this line:
 Headers And Footers
 
 5.2. Value lines
 -
 -
 
 5.3. Ending line
 The headers and footers section end with
 Headers And Footers End
 
 
 6. Cellvalue:
 This is a cellvalue line
 ('DN|B,I,U,TF1,P18|T4) A!D11: Hello everybody
 
 a cellvalue line has 3 parts:
 6.1. Formatpart
 6.2. Location part
 6.3. Text String, formular, value, link, etc.
 
 6.1. Formatpart:
 The format part looks like that:
 ('DN|B,I,U,TF1,P18|T4)
 There are 3 formatsubparts divided by |:
 (Part1|Part2|Part3)
 5.1.1. Part 1 - Alignment format
 5.1.2. Part 2 - Text format
 5.1.3. Part 3 - Cell format
 
 6.1.1. Part 1 - Alignment format
 This is the alignment format for vertical, horizontal alignment
 
 
          
           | 6.1.1.1 | 1 | horizontal alignment | left |  
           | 6.1.1.2 | 2 | horizontal alignment | right |  
           | 6.1.1.3 | 3 | horizontal alignment | center |  
           | 6.1.1.4 | VT | vertical alignment | top |  
           | 6.1.1.5 | VC | vertical alignment | center |  
           | 6.1.1.5 | VB | vertical alignment | bottom |  
           | 6.1.1.6 | DN | ?? | ?? |  6.1.2. Part 2 - Text format
 This is the alignment format for the text
 
 
          
           | 6.1.2.1. | B | bold | - |  
           | 6.1.2.2. | I | italic | - |  
           | 6.1.2.3. | U | underline | - |  
           | 6.1.2.4. | TFx | fontfamily | x is the number in the fonttable. |  
           | 6.1.2.5. | Px | fontsize | x is the fontsize. |  6.1.3. Part 3 - Cell format
 This is the alignment format for the text
 
 
          
           | 6.1.3.1. | Txy | Frame at the top |  
           | 6.1.3.2. | Bxy | Frame at the bottom |  
           | 6.1.3.3. | Lxy | Frame at the left side |  
           | 6.1.3.4. | Rxy | Frame at the right side |  x = number describes the penwidth and penstyle of the frame line
 
 
          
           | applix |  | kspread |  
           | number x | info |  | penwidth | penstyle |  
           | 1 | - | = | 1 | 1 |  
           | 2 | - | = | 2 | 1 |  
           | 3 | - | = | 3 | 1 |  
           | 4 | dashed | = | 1 | 3 |  
           | 5 | double line | = | 5 | 1 |  y = examples FG7    SH11FG18    SH11FG18BG4
 it has max 3 Parts:
 6.1.3.4.1. Foreground color.
 6.1.3.4.2. Background shade type.
 6.1.3.4.3. Background color.
 
 6.1.3.4.1. Foreground color:
 FGx = Foreground color.  - x is the number in the colortable
 
 6.1.3.4.2. Background shade type:
 SHx = Background shade type. x is the shadetypenumber
 Not all can be translate !
 
 
 
          
           | applix |  | kspread |  
           | shadetype number |  | shadetype number |  
           | 1 | = | 0 |  
           | 2 | = | 7 |  
           | 3 | = | 0 |  
           | 4 | = | 4 |  
           | 5 | = | 3 |  
           | 6 | = | 2 |  
           | 7 | = | 0 |  
           | 8 | = | 0 |  
           | 9 | = | 10 |  
           | 10 | = | 9 |  
           | 11 | = | 11 |  
           | 12 | = | 12 |  
           | 13 | = | 13 |  
           | 14 | = | 14 |  
           | 15 | = | 0 |  
           | 16 | = | 0 |  
           | 17 | = | 0 |  
           | 18 | = | 0 |  
           | 19 | = | 0 |  6.1.3.4.3. Background color:
 BGx = Background color. x is the number in the colortable
 
 
 6.2. Location part:
 The location part looks like that:
 A!D11:
 A = table
 D11 = cellnumber
 D = columnnumber
 11 = rownumber
 :=textstring, ;=formular, .=value
 
 6.3. Text String etc:
 The text string part looks like that:
 Hello everybody
 
 7. End
 The end looks like that:
 *END SPREADSHEETS
 
 
 
 |  |