Importer un fichier.csv dans une table libreoffice Base

Fermé
ElCatala66 Messages postés 2 Date d'inscription jeudi 29 août 2019 Statut Membre Dernière intervention 2 septembre 2019 - 29 août 2019 à 17:43
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

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