Introduction
L'extension du fichier «.WK1» permet d'indiquer un fichier de format de tableur (chiffrier électronique) du Lotus 1-2-3.
Structure d'entête du fichier
Voici la structure d'entête du fichier .WK1 :
Déplacement | Taille | Description |
---|---|---|
0 | 2 octets | Ce champ permet d'indiquer le code d'identificateur. La valeur est toujours 0. |
2 | 2 octets | Ce champ permet d'indiquer la longueur des données de l'entête. La valeur est 2. |
4 | 2 octets | Ce champ permet d'indiquer la signature de Lotus 1-2-3. La valeur est 1028 ou 1030. |
Structure du corps du fichier
Le corps du programme est une suite de bloc correspondant à chacune des cellules du tableur. On utilise le deuxième champ pour l'ajouter à la position courante et passer au prochain bloc de données.
Liste des codes d'identification
MID | Valeur | Description |
---|---|---|
BOF | 00h | Cet identificateur permet d'indiquer le début du fichier. |
EOF | 01h | Cet identificateur permet d'indiquer la fin de fichier. |
CALCMODE | 02h | Cet identificateur permet d'indiquer le mode de calcul. |
CALCORDER | 03h | Cet identificateur permet d'indiquer l'ordre de calcul. |
SPLIT | 04h | Cet identificateur permet d'indiquer le type de fenêtre fractionnée. |
SYNC | 05h | Cet identificateur permet d'indiquer la synchronisation de la fenêtre divisée. |
RANGE | 06h | Cet identificateur permet d'indiquer la plage de feuille de calcul active. |
WINDOW1 | 07h | Cet identificateur permet d'indiquer l'enregistrement de la fenêtre 1. |
COLW1 | 08h | Cet identificateur permet d'indiquer la largeur de colonne, fenêtre 1. |
WINTWO | 09h | Cet identificateur permet d'indiquer l'enregistrement fenêtre 2. |
COLW2 | 0Ah | Cet identificateur permet d'indiquer la largeur de colonne, fenêtre 2. |
NAME | 0Bh | Cet identificateur permet d'indiquer la plage nommée. |
BLANK | 0Ch | Cet identificateur permet d'indiquer la cellule vide. |
INTEGER | 0Dh | Cet identificateur permet d'indiquer la cellule de nombre entier. |
NUMBER | 0Eh | Cet identificateur permet d'indiquer le nombre à virgule flottante. |
LABEL | 0Fh | Cet identificateur permet d'indiquer la cellule d'étiquette. |
FORMULA | 10h | Cet identificateur permet d'indiquer la cellule de formule. |
TABLE | 18h | Cet identificateur permet d'indiquer la plage de la table de données. |
ORANGE | 19h | Cet identificateur permet d'indiquer la plage de requête. |
PRANGE | 1Ah | Cet identificateur permet d'indiquer la plage d'impression. |
SRANGE | 1Bh | Cet identificateur permet d'indiquer la plage de tri. |
FRANGE | 1Ch | Cet identificateur permet de remplir la plage |
KRANGE1 | 1Dh | Cet identificateur permet d'indiquer la plage de clefs de tri primaire. |
HRANGE | 20h | Cet identificateur permet d'indiquer la plage de distribution. |
KRANGE2 | 23h | Cet identificateur permet d'indiquer la plage de clefs de tri secondaire. |
PROTEC | 24h | Cet identificateur permet d'indiquer la protection globale. |
FOOTER | 25h | Cet identificateur permet d'afficher le pied de page. |
HEADER | 26h | Cet identificateur permet d'indiquer d'afficher l'entête. |
SETUP | 27h | Cet identificateur permet d'indiquer la configuration de l'impression. |
MARGINS | 28h | Cet identificateur permet d'indiquer l'affichage du code des marges. |
LABELFMT | 29h | Cet identificateur permet d'indiquer l'alignement des étiquettes. |
TITLES | 2Ah | Cet identificateur permet d'indiquer l'affichage les bordures. |
GRAPH | 2Dh | Cet identificateur permet d'indiquer les paramètres actuels du graphique. |
NGRAPH | 2Eh | Cet identificateur permet d'indiquer les paramètres du graphique nommé. |
CALCCOUNT | 2Fh | Cet identificateur permet d'indiquer le nombre d'itérations. |
UNFORMATTED | 30h | Cet identificateur permet d'indiquer l'impression formatée ou non formatée. |
CURSORW12 | 31h | Cet identificateur permet d'indiquer l'emplacement du curseur. |
Bloc d'étiquette
Déplacement | Taille | Description |
---|---|---|
0 | 2 octets | Ce champ permet d'indiquer le code d'identification, soit 15. |
2 | 2 octets | Ce champ permet d'indiquer la longueur des données. |
4 | 1 octet | Ce champ permet d'indiquer le format de la cellule. |
5 | 2 octets | Ce champ permet d'indiquer la colonne de la cellule. |
7 | 2 octets | Ce champ permet d'indiquer la ligne de la cellule. |
9 | 240 octets | Ce champ permet d'indiquer le texte de la cellule sous forme d'une chaine de caractères ASCIZ. |
Bloc d'entier
Déplacement | Taille | Description |
---|---|---|
0 | 2 octets | Ce champ permet d'indiquer le code d'identification, soit 13. |
2 | 2 octets | Ce champ permet d'indiquer la longueur des données. |
4 | 1 octet | Ce champ permet d'indiquer le format de la cellule. |
5 | 2 octets | Ce champ permet d'indiquer la colonne de la cellule. |
7 | 2 octets | Ce champ permet d'indiquer la ligne de la cellule. |
9 | 2 octets | Ce champ permet d'indiquer la valeur de la cellule. |
Bloc de nombre réel
Déplacement | Taille | Description |
---|---|---|
0 | 2 octets | Ce champ permet d'indiquer le code d'identification, soit 14. |
2 | 2 octets | Ce champ permet d'indiquer la longueur des données. |
4 | 1 octet | Ce champ permet d'indiquer le format de la cellule. |
5 | 2 octets | Ce champ permet d'indiquer la colonne de la cellule. |
7 | 2 octets | Ce champ permet d'indiquer la ligne de la cellule. |
9 | 6 octets | Ce champ permet d'indiquer la valeur du nombre réel de la cellule. |
Bloc de fin
Déplacement | Taille | Description |
---|---|---|
0 | 2 octets | Ce champ permet d'indiquer le code d'identification, soit 1. |
2 | 2 octets | Ce champ permet d'indiquer la longueur des données. La valeur est toujours 0. |
Code source
Voici des exemples de code source d'utilitaires pour manipuler les .WK1 :
Lien | Langage de programmation | Description | Projet | Syntaxe |
---|---|---|---|---|
123.PAS | Free Pascal, Turbo Pascal | Cette commande permet de lancer un clone de Lotus 1-2-3. | Corail | 123 |
CSV2WK1.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .CSV en format WK1 de Lotus 1-2-3. | Corail | CSV2WK1 |
Dernière mise à jour : Jeudi, le 3 mars 2016