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
|
|