Importer un fichier.csv dans une table libreoffice Base

Messages postés
2
Date d'inscription
jeudi 29 août 2019
Statut
Membre
Dernière intervention
2 septembre 2019
- - Dernière réponse : ElCatala66
Messages postés
2
Date d'inscription
jeudi 29 août 2019
Statut
Membre
Dernière intervention
2 septembre 2019
- 2 sept. 2019 à 20:07
Bonjour,
Je cherche une solution pour importer dans une table de libreoffice Base, un fichier.csv. Pour l' instant, je n' ai rien trouvé.
Pour information, je suis sous libre office 6.2 et la base est convertie sous Firebird.
Dans L' esprit, je voudrai pouvoir lancer depuis un bouton d' un formulaire, l' importation directe dans une table existante.
Avez-vous déjà réalisé ce type d' importation?
Modèle de fichier à importer avec sa présentation réalisée sous python:
['Cf_Pht', 'ChmPht', 'NmPht']
[1, /elfouste/El_Casot/Yvon/Phototeque1/A_Trier/Noel, DSCF0057]

La première ligne représente les noms de champ.
La deuxième ligne est constituée des données à sauvegarder.
A savoir que ce fichier comprend dans sa version définitive une quinzaine de champs. Je n' ai pas voulu alourdir inutilement l' exemple présenté.

Cordialement
Afficher la suite 

1 réponse

Messages postés
2
Date d'inscription
jeudi 29 août 2019
Statut
Membre
Dernière intervention
2 septembre 2019
0
Merci
Bonsoir,
J' ai pu avancer un peu mais il me reste un soucis avec ma base sous LibreOffice Firebird. En effet, suivant la code ci dessous, lorsque la base est au format HSQL, pas de soucis, les données du fichier sont importés dans la table. Par contre, sous firebird, l' importation plante avec l' erreur suivante:
Une exception c' est produite:
Type: com.sun.star.sdbc.SQL.Exception
Message: Erreur de séquence de fonction.

La partie du code à l' origine de l' erreur:
	Select Case .Columns.getByIndex(i-1).TypeName
					Case "INTEGER"
						.Columns.getByIndex(i-1).updateInt(resuQuery.getInt(i))
					Case "VARCHAR"
						.Columns.getByIndex(i-1).updateString(resuQuery.getString(i))
					Case "NUMERIC"
						.Columns.getByIndex(i-1).updateInt(resuQuery.getInt(i))                
				End Select
					If i = 1 Then
						.insertRow
						Else
							.UpdateRow
					End If   

Le message apparait sur la ligne .insertRow.
Quelqu' un en saurait-il plus?

A vous lire
Commenter la réponse de ElCatala66