1) AppendFromDocx: - Importe les données du document docx, dans un curseur ou une table déjà existante et ouvert. - Le type de champ et le nom sont ceux du curseur / table (aucun validations sont effectuées) - SET DATE doit être correctement réglée, pour importer les champs de date et datetime - Un champ logique est remplacé par .T, si la cellule contient «true», et avec .F, sinon..
2) ImportFromDocx: - Retourner le nom de la table / cursor généré - Analyser la première (importé) ligne de la table du docx, et obtenir le nombre de colonnes et les types de données à partir de cette ligne - Crée un DBF / cursor (selon le sixième paramètre) - Et remplir ce DBF avec les données du docx - Le champs sont nommés mField1, mField2 etc. - Un champ est considéré comme de type date, si CTOD () ne soit pas vide; SET DATE doit être correctement réglée, pour importer les valeurs de date et datetime - Le séparateur décimal est tirée de SET POINT TO - Un champ est considéré comme de type nombre, si ne contient que des chiffres, et pas plus d'un séparateur décimal, et pas plus d'un + ou - (soit une +, soit une -) dans la position la plus à gauche - La taille et la précision du champ numérique est calculé avec MAX (LEN (ALLTRIM (valeur de la cellule))), respectivement avec MAX (LEN (ALLTRIM (valeur de la cellule)) - AT (séparateur décimal, ALLTRIM (valeur de la cellule)) - Un champ est considéré comme logique si la cellule contient «true» ou «false» - La longueur des champs de caractères est MAX (LEN (valeur de la cellule)) - Si MAX (LEN (valeur de la cellule))> 254, le champ est MEMO
Nouveaux version AppendFromDocx 1.3 - une meilleure détection de la teneur en cellules Contrairementappendfromdocx,importfromdocxcréeune nouvelle table,essayant d'imiterle comportement de lacommande IMPORT ImportFromDocx 1.3 - une meilleure détection de la teneur en cellules - retourner le nom de la table / cursor généré; le meme nome avec xlsx / SYS(2015) / chaîne videen cas d'erreur - si MAX (LEN (valeur de la cellule))> 254 ou contient un CHR(13), le champ est MEMO
Code source :
* 1) Importer dans l'alias de courant
= appendfromdocx('MonFichierWord.docx') * 2) Importer dans MonTableau * MonTableau doit etre ouvert
= appendfromdocx('MonFichierWord.docx', 'MonTableau') * 3) Importer que les colonnes Champ1 et Champ2
= appendfromdocx('MonFichierWord.docx' , , 'Champ1,Champ2') * 4) Éviter le premier ligne, et commencer avec le second
= appendfromdocx('MonFichierWord.docx' , , , 2) * 5) Importez le deuxieme tableau du document docx
= appendfromdocx('MonFichierWord.docx' , , , , 2)