Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


Bonjour,

dépendant de la source (je connais pas le site, donc pas possible de savoir
si faisable),
1) calc peut lire des flux web pour les intégrer via : Données - flux
(ça éviterait peut-être le script python),
2) Il y a aussi la possibilité de développer le script python comme
"plugin" calc,
3) la recopie manuelle se fait très facilement : (une fois que la cellule
D1 est faite, se positionner dessus, puis :
Ctrl-C + Ctrl-Shift-End + Ctrl-V    :)
4) script Libreoffice via un bouton associé au script,

bref, y'a plein de moyen d'y arriver ;)
Bon dimanche
Yves

Le dim. 30 mai 2021 à 10:01, <larb@lette.hopto.org> a écrit :

bonjour à tous,
et encore merci pour toutes vos contributions.
Oui, ici aussi on a profité du soleil hier ;-) et on recommence
aujourd'hui, donc pas de souci Jean-Michel !
pour répondre à la question "d'où viennent ces données ? "
C'est un script Python que j'ai programmé, qui vient quotidiennement
extraire d'un site web en ligne les données prix/promotions sur 250
produits. Le script constitue une base de données (le fichier CSV), qui
grossit donc tous les jours.
Oui : je pourrais  modifier mon script pour ajouter cette fameuse colonne
PromotionExists, mais j'avais envie d'apprendre à me servir de LibreOffice,
que je n'ai jamais vraiment utilisé, donc je ne voulais pas faire un
constat d'échec dès le début ;-)
Force est de constater que BASE + table CSV, ça ne marche pas. Tant pis.

Initialement, j'étais parti sur cette idée de faire un lien de données
externes dans CALC comme proposé par Yves. Mais le fait de devoir
manuellement "prolonger" les formules jusqu'à la dernière ligne pour que le
graphique final soit à jour ne m'allait pas. C'est pourquoi je m'étais
rabbattu sur l'idée d'une requête dans BASE (dont la formule n'a pas besoin
d'être corrigée quotidiennement).

Donc je reviens à mon idée initiale, mais avec cette fois-ci comme
problématique de prolonger automatiquement les formules jusqu'à la dernière
ligne. Je vais partir sur une macro je pense.
A ce stade, je devrais pouvoir me débrouiller (il faut juste que je
comprenne quels sont les objets accessibles par macro en LibreOffice, ansi
que leurs attributs et méthodes)
Merci à tous pour votre aide,

et profitez bien de la journée !
Le 29/05/2021 à 14:25, yves dutrieux a écrit :

bonjour,

supposons ton fichier .csv avec 3 champs dont le dernier est le champ
"promotion".
A partir de calc,
Feuilles - lien vers données externes - <choisir ton fichier .csv>
le fichier sera importé dans ta feuille,
dans la colonne D1 : =SI(C1="";0;1)

indiquera 1 si promotion different de zéro (tu copies/colles cette formule
sur toutes les lignes).
Si ensuite, fon fichier csv venait à être modifié : Editon - liens de
données externes- [actualiser]

idée rapide et à l'arrache. A voir si ça peut convenir.
nb: ton problème avec la requêtes est sql est probablement du à ce que
base ne considère pas un fichier .csv comme une table "standard" sql de
base.
Si tu importes ton fichier normalement et le transforme comme une table,
probablement que cela fonctionnera.

Yves

Le sam. 29 mai 2021 à 09:44, <larb@lette.hopto.org> a écrit :

Merci à tous les deux.

Concernant le forum https://ask.libreoffice.org/fr/questions/, je
l'avais vu, mais il ne m'a pas semblé très actif autour de Base, et
comme sur la page officielle de LibreOffice, ils mentionnent que le
canal officiel pour demander de l'aide, c'est la liste...je suis allé
par là.
Concernant ma version (obsolète) de LibreOffice, c'est parceque je
travaille sous Linux, distribution non compilée Gentoo, qui du coup a
toujours un peu de retard dans la mise à disposition de paquets stables,
pour privilégier la stabilité des versions officiellement stables (même
si je peux installer la nouvelle version de LibreOffice en "forçant" le
paquet jugé instable sous Gentoo)
Merci Jean-Michel (COSTE) pour le lien vers la documentation (dont il
semble que vous êtes le traducteur ? Merci pour ça !).
J'y apprends qu'il y a 2 manières de se connecter à un fichier CSV :
1) Tables de texte dans une base de données HSQLDB interne
2)Les tables texte comme base d’une base de données autonome
J'ai utilisé la 2ème méthode. Et dans ce cas, la documentation indique
"L’accès aux tables par requêtes est également limité à une table à la
fois et sans l’utilisation de
fonctions. De même, les relations ne sont pas prises en charge"...
Si on ne peut pas utiliser de fonctions, ça explique donc pourquoi ma
colonne reste toujours vide !
Donc j'ai testé la méthode 1). Mais elle ne convient pas non plus, car
je n'ai pas de clé primaire numérique dans mon fichier CSV...donc
impossible de lier la table (je peux créer le squelette vide à l'aide de
l'instruction SQL, mais pas faire la liaison)

Je suis donc un peu coincé...
A l'origine, mon vrai besoin était de créer des analyses graphiques
depuis les données sources du fichier CSV, et j'avais besoin de
simplifier le champ "Promotion" par une simple information "présence ou
absence : 1 ou 0. Et de restituer, pour 1 produit au choix, un
historique de prix sous forme de graphique "courbe" et des batons
lorsqu'une période est sous promotion (bâtons à 1 lors d'une période
sous promotion, et à 0 (donc invisible) hors période de promotion).
Je pensais donc faire le graphique dans CALC, grâce à un tableau croisé
dynamique dont la source aurait été une base de données BASE
(enregistrée pour être utilisable dans CALC) qui elle-même aurait été
liée à mon fichier CSV.
Manifestement, je ne peux pas faire ça.
A tout hasard, auriez une idée pour contourner le problème ?
En tout cas, merci de vos contributions fort utiles !
Cordialement,

Le 29/05/2021 à 08:09, Jean-Michel PIERRE a écrit :
Il est aussi possible de poser les questions sur cette page :
https://ask.libreoffice.org/fr/questions/
Un fichier peut y être téléversé pour être testé

Jean-Michel PIERRE
Tél : 05.49.255.333
Tél : 06.19.55.73.22

Le 29 mai 2021 à 00:53, Jean-Michel COSTE <jeanmichel.coste@free.fr>
a écrit :

Bonjour,

Le 28/05/2021 à 19:23, larb@lette.hopto.org a écrit :
Bonjour à tous,
C'est la 1ère fois que j'utilise une liste comme moyen de solliciter
de l'aide. J'espère que j'ai bien saisi le principe, et que mon message
n'est pas à côté de la plaque ;-)
J'ai cherché sur Internet pour trouver une réponse à mon problème,
mais aucune des solutions que j'ai trouvé ne fonctionne, bien qu'elles
semblent pertinentes.

J'utilise LibreOffice 6.4.7.2
Cette version est obsolète, la dernière version stable est la 7.06
(mais ce n'est pas la cause du problème)
Le problème : j'ai une table HistoriquePromo (qui est un fichier CSV,
la base de donnée est connectée à ce fichier CSV). J'ai un champ Promotion
dans cette table, qui contient parfois une information (libellé de la
promotion, c'est du texte). Le reste du temps, il est vide (il n'y a donc
pas de promotion).
Mon besoin : Dans une requête SELECT "Article" "Article",
"Description" "Description", "Date" "Date", "Prix" "Prix", "Promotion"
"Promotion" FROM "HistoriquePromo", je veux ajouter une colonne à la
requête qui renvoit 1 si une promotion est présente (le champ est rempli
avec du texte), 0 sinon.

J'ai testé : SELECT "Article" "Article", "Description" "Description",
"Date" "Date", "Prix" "Prix", "Promotion" "Promotion", COALESCE (
"Promotion", 1, 0 ) "PromotionExists" FROM "HistoriquePromo"

mais la nouvelle colonne "PromotionExists" reste vide. Je n'ai,
cependant, pas de message d'erreur.
Attention, il y a deux manières de gérer une table texte, il est
possible que ça ne fonctionne pas dans l'une des deux. Lire le chapitre 2
du Guide Base ;
https://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_Base
<
https://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_Base


Il est précisé dans la documentation que pour qu'une base CSV soit
modifiable, elle doit être munie d'un champ numérique à valeurs uniques.

J'ai testé CASE WHEN "Promotion" = "" THEN 0 ELSE 1 END : la nouvelle
colonne reste vide.
J’essaierais  CASE "Promotion" WHEN "" THEN 0 ELSE 1

Cordialement,


--


       Jean-Michel COSTE


--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous
désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous
désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy



--
web site : http://www.molenbaix.com



-- 
web site : http://www.molenbaix.com

-- 
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.