Export des comptes (pas des bases) en xls ou csv ou

Hello !

je teste pas mal depuis hier… bon le .csv qui sort, y’a qq bizarreries mais j’ai pu contourner l’essentiel. Je note, effectivement, quand on rentre un label personnalisé que, lors de l’export, cela sort une colonne de plus.

Cependant:

  • lorsqu’on remplit le label perso, on a donc plus les infos d’avant…sauf à aller dans les détails de l’opération. Sur quelques opérations, cava mais quand on arrive à plusieurs dizaines par mois, c’est vite lourd. En fait il suffirait de pouvoir demander à Kresus d’afficher en meme le « libellé complet » et le « libellé personnalisé » dans la vision de base… est ce compliqué à rajouter ? (je n’ai aucune connaissance sur le sujet, je ne peux que poser des questions -___-’ )

  • peux t’on élargir (ou demander à régler) la vision de la colonne centrale ? la plupart des infos (libellé, catégoerie, etc…) sont tronquées…

  • enfin, concernant l’export csv, y’a qq libellés qui foutent le bordel (quand y’a une virgule dans le titre notamment) mais bon, ça, c’est difficilement contournable je pense. Par contre, quand on écrit un libellé personnalisé, celui ci se rajoute dans l’export (forcement) et quand on exporte, les lignes sans lib personnalisé ont donc une colonne vide, ce qui ait que les lignes avec un lib perso se retrouvent décalée lors de l’export (quand on fusionne les séparateurs). Alors c’est contournable, j’en ferais pas une fixette (: mais si jamais y’a une fonction export qui se rajoute, il faudra peut etre en tenir compte (-:

Je conclue ce message en remerciant les dev de Kresus, vraiment, y’a une base ici qui est très intéressante… je ne sais pas si je vais pouvoir arriver à l’utiliser dans le cadre de mes besoins mais c’est un outil évidemment très utile !!

1 « J'aime »

petit add: pour exporter les catégories, il faut categoryId et pas category dans la formule curl… par contre, ca n’exporte qu’un chiffre (qui corresponds à une catégorie, je suppose) mais pas le label de la catégorie ? … j’ai essayé de remplacer categoryId par categoryLabel mais ca doit pas etre ca (:

edit: idem, quand on a plusieurs comptes, les transactions sont toutes exportées en bloc… sans qu’on puisse déterminer lesquels sont sur tel compte ou sur tel compte… ?

Oui, d’où ma précision :

Et rien ne t’empêche de mettre en label personnalisé le label brut + la note que tu veux rajouter (en les séparant par un / ou autre pour t’y retrouver).

Non, mais tu peux déjà, si ce n’est déjà fait, opter la « Disposition fluide » dans la personnalisation de l’application, pour utiliser toute la place disponible.

Ce ne sera en effet pas possible d’avoir le libellé de la catégorie via cette simple commande. Tu peux toi-même remplacer les categoryId: 1 par categoryLabel: "MACHINTRUC" éventuellement dans le CSV créé.

Ça devrait être jouable en bidouillant la commande jq. Ou alors en exportant aussi le champ accountId et en filtrant ensuite via un tableur :).

  • j’avais raté l’option de la disposition fluide ! C’est cool !!

Tu peux toi-même remplacer les categoryId: 1 par categoryLabel: "MACHINTRUC" éventuellement dans le CSV créé.

dans la commande tu m’a donné ? ou bien je le fais après, dans excel, en remplacant le numéro de catégorie par la bonne chose…? mais c’est assez lourd.

Ça devrait être jouable en bidouillant la commande jq. Ou alors en exportant aussi le champ accountId et en filtrant ensuite via un tableur :).

On exporte déjà la valeur AccountId mais elle est vide…
On ne peut pas avoir plusieurs accounts dans Kresus, j’ai l’impression (du moins quand c’est dans un YUNOHOST), j’ai créé un compte utilisateur différent dans YNH et une fois loggé, il m’a envoyé sur une vision totalement identique de ce que j’avais dans mon compte admin…
je ne sais pas si c’est une limite de la version de KRESUS porté pour Yunohost …?

OUPS: j’ai dit de la m… en fait, AccountId est exporté sous forme de chiffre… bon… donc j’ai rien dit sur ce point. Le reste de la question sur le fait d’avoir des utilisateurs différents sur la meme instance de Kresus reste valable mais c’est d’un coup moins un souci…

Alors je remet ici la bonne réponse à la partie essentielle de ma question: comment exporter en csv ?

Dans un terminal sur la machine (ou en ssh):

curl -L http://127.0.0.1:xxxx/NomDeKresus/api/all | jq ".transactions[] | [.id, .accountId, .label, .rawLabel, .customLabel, .date, .amount, .categoryId, .type] | @csv" > fichier.csv

Evidemment, il faut mettre le bon port à la place de xxxx et le bon chemin à la place de NomDeKresus …

Ensuite, on récupère le .csv et il faut importer le .csv en mettant dans les séparateurs « en plus » des virgules, les caractères "\ et ’ en séparateur de chaines de caractères.

Certaines opérations seront décalées par rapport aux autres si elles ont une virgule dans le rawLabel et également si elles ont qq choses en .label (cad un label personnalisé, rentré dans Kresus). De là, un tri via les colonnes ou il y a des choses qui dépassent permettent de les mettre en premier, on copie-colle pour remettre les infos aux bons endroits et on retrie par date.
Sous excel/libreoffice, ca prends moins de 5 mins si on connait pas trop… moins de 2 mins, si on connait… et tadaaa ! On a un .xls/.ods exporté et exploitable.


Je reste partisan de la possibilité d’ajouter une colonne dans kresus directement (alors après, il faut la catégoriser dans Column, l’identifier, etc… j’ai bien compris, ca se fait pas en 5 mins, ca…) …

mais SURTOUT, le fait de pouvoir avoir plusieurs comptes qui n’accèdent pas aux memes données ! Bon, je suppose que je peux contourner ca en installant plusieurs instances de Kresus sur la meme machine…

1 « J'aime »

Concernant les virgules qui cassent le csv, il faut jouer un peu avec jq mais je pense que les champs peuvent être entourés de ".

Jq peut aussi filtrer par champ et donc filtrer sur les accountId qui intéressent.

ah je ne maitrise pas du tout jq … -____-’

La documentation de jq est disponible ici : jq 1.7 Manual, mais il y a plein de tutos sur le web.

Donc en utilisant -r ça devrait améliorer le CSV de sortie:

jq -r ".transactions[] | [.id, .accountId, .label, .rawLabel, .customLabel, .date, .amount, .categoryId, .type] | @csv"

Ensuite pour filtrer sur les comptes qui t’intéressent :

jq -r ".transactions[] | select(.accountId == (ACCOUNT_ID_1, ACCOUNT_ID_2)) | [.id, .accountId, .label, .rawLabel, .customLabel, .date, .amount, .categoryId, .type] | @csv"

En remplaçant bien sûr ACCOUNT_ID par ceux qui t’intéressent.

je te remercie à nouveau, je vais voir ce que cela donne

Edit: bon ca vire les \ mais pas les "

mais c’est déjà un pas ! (: