ajout des caractères de fin de ligne et des remplacements

pull/3/head
Nicolas Sanchez 1 month ago
parent dc341976cf
commit 6ce3c0c970

@ -1 +0,0 @@
,sanchezn,pc-sanchezn,08.10.2025 08:57,file:///home/sanchezn/.config/libreoffice/4;

@ -0,0 +1,223 @@
;;;;;;;;;;;
titre;SYNTHESE;;;;;;CODES;LIGNES TEMPLATE;RUBRIQUES LIASSE OU FORMULES TEMPLATE;DETAIL FORMULES;
;;;;;;;;;;;
sous-titre;COMPTES SOCIAUX LIASSE 2033 EN EUR;N;% VAR;N-1;%VAR;N-2;;;;;
durée;Durée de l'exercice;;;;;;;;;;Dans tous les cas, il faut une guidance dès qu'il y a un retraitement, expliquer quel retraitement
agrégat;Conforme Moteur Notation;;;;;;;;;;Template IHM BERYL ANALYSE FINANCIERE
agrégat;Gestionnaire;;;;;;;;;;
;;;;;;;;;;;
titre;BILAN ACTIF SYNTHETIQUE;;;;;;;;;;
;;;;;;;;;;;Démarche : repartir sur une trame quasi identique que pour les 2050, actif passif cr à la suite, et pas actif passif côte à côte
sous-titre;ACTIF;N;% VAR;N-1;%VAR;N-2;;;;;Faut-il préciser si Nbre ou % ?
durée;Durée de l'exercice;;;;;;;;;;Reste à décider pour la situation patrimoniale
;;;;;;;;;;;
agrégat;Fonds commercial (brut);;;;;;010;G10;010;;
agrégat;Ensemble des Autres immobilisations incorporelles (brut);;;;;;014;G11;014;;
agrégat;Amortissements et provisions des immobilisations incorporelles;;;;;;CY3;G12;012 + 016;;
sous-total;Immobilisations Incorporelles Nettes;;;;;;C0;G9;(010 + 014) - (012 + 016);;
agrégat;Terrains (brut);;;;;;426;G14;426;;
agrégat;Ensemble des Autres Immobilisations corporelles (brut) yc Engts de CB;;;;;;CY4;G15;028 - 426;;
agrégat;Amortissements et provisions des immobilisations corporelles;;;;;;E66;G16;030;;
sous-total;Immobilisations Corporelles Nettes (yc Engts de CB);;;;;;C66;G13;028 - 030;;
agrégat;Ensemble des immobilisations financières (brut);;;;;;040;G18;040;;
agrégat;Amortissement des immobilisations financières;;;;;;042;G19;042;;
sous-total;Immobilisations Financières Nettes;;;;;;C67;G17;040 - 042;;
sous-total;ACTIF IMMOBILISE NET (yc ENGTS DE CB);;;;;;CY1;G7;044 - 048;;
sous-total %;Total Immobilisation (Net ) en % du Total Actif (Net);;;;;;CY2;G8;[044 - 048] / [110 - 112];;
agrégat;Ensemble des Stocks et en-cours (Marchandises, Matières premières…) (brut);;;;;;CY6;G23;050 + 060;;
agrégat;Provisions sur Stock et en-cours;;;;;;CY7;G24;052 + 062;;
sous-total;Stocks et en-cours Nets;;;;;;C2;G22;(050 + 060) - (052 + 062);;
agrégat;Créances clients et comptes rattachés (brut) (yc effets escomptés non échus);;;;;;068;G26;068;;
agrégat;Ensemble des Autres créances et Réalisables (brut);;;;;;C4;G27;064 + 072 + 092;;
agrégat;Provisions sur créances et Réalisables;;;;;;C4A;G28;070 + 066 + 074 + 094;;
sous-total;Créances clients et Réalisables Nets;;;;;;C4001;G25;(068 + 064 + 072 + 092) - (070 + 066 + 074 + 094);;
sous-total;Ensemble des Stocks et Créances (Net) (yc effets escomptés non échus);;;;;;C5;G20;(050 + 060) - (052 + 062) + (068 + 064 + 072 + 092) - (070 + 066 + 074 + 094);;
sous-total %;Ensemble des Stocks et Créances (Net) en % du Total Actif (Net);;;;;;CY5;G21;[(050 + 060) - (052 + 062) + (068 + 064 + 072 + 092) - (070 + 066 + 074 + 094)] / [110 - 112];;
ratio %;BFR Besoin en Fonds de Roulement BRUT;;;;;;CY8;G29;[(050 + 060) + (068 + 064 + 072 + 092)] - [164 + 166 + 172 + 175 + 174];;
ratio %;BFR Besoin en Fonds de Roulement NET;;;;;;C19;G30;(050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174);;
agrégat;Valeurs Mobilières de Placement (brut);;;;;;E12;G33;080;;
agrégat;Disponibilités (brut);;;;;;084;G34;084;;
agrégat;Provisions sur disponibilités et VMP;;;;;;CY10;G35;082 + 086;;
sous-total;TRESORERIE ACTIF NET ;;;;;;C6;G31;(080 + 084) - (082 + 086);;
sous-total %;Trésorerie Actif (Net) en % du Total Actif (Net);;;;;;CY9;G32;[(080 + 084) - (082 + 086)] / [110 - 112];;
total;TOTAL ACTIF NET;;;;;;CY11;G36;110 - 112;;
;;;;;;;;;;;
;;;;;;;;;;;
titre;BILAN PASSIF SYNTHETIQUE;;;;;;;;;;
;;;;;;;;;;;
sous-titre;PASSIF;N;% VAR;N-1;%VAR;N-2;;;;;
durée;Durée de l'exercice;;;;;;;;;;
;;;;;;;;;;;
agrégat;Capital social;;;;;;120;G40;120;;
agrégat;Ensemble des Réserves et Report à nouveau;;;;;;CY56;G41;126 + 130 + 132 + 134;;
agrégat;Résultat de l'exercice;;;;;;E21;G42;136;;
agrégat;Ensemble des autres postes (Subventions, Primes…);;;;;;CY13;G43;124 + 137 + 140;;
sous-total;TOTAL CAPITAUX PROPRES;;;;;;142;G38;142;;
sous-total %;Total Capitaux propres en % du Total Passif;;;;;;CY12;G39;142 / 180;;
sous-total;PROVISIONS POUR RISQUES ET CHARGES;;;;;;154;G44;154;;
sous-total %;Total Provisions en % du Total Passif;;;;;;CY14;G45;154 / 180;;
agrégat;Emprunts et dettes assimilées (yc Engts de CB);;;;;;156;G48;156;;
agrégat;Comptes Courants d'Associés;;;;;;173;G49;173;;
sous-total;TOTAL DES DETTES FINANCIERES;;;;;;CY15;G46;156 + 173;;
sous-total %;Total Dettes financières en % du Total Passif;;;;;;CY16;G47;[156 + 173] / 180;;
ratio %;FRNG Fonds de Roulement Net Global;;;;;;CY17;G50;[142 + 154 + 195] - [044 - 048];;
ratio %;GEARING BRUT;;;;;;CY18;G51;[156 + 173] / 142;;
ratio %;GEARING NET;;;;;;CY19;G52;[(156 + 173) - ((080 + 084) - (082 + 086))] / 142;;
agrégat;Dettes Fournisseurs et comptes rattachés;;;;;;166;G55;166;;
agrégat;Ensemble des Autres dettes non financières;;;;;;C14;G56;164 + 172 + 175 +174;;
sous-total;TOTAL DES DETTES NON FINANCIERES;;;;;;C15;G53;164 + 166 + 172 + 175 + 174;;
sous-total %;Total Dettes non financières en % du Total Passif;;;;;;CY20;G54;[164 + 166 + 172 + 175 + 174] / 180;;
total;TOTAL PASSIF (yc EENE et Engts de CB ré-incorporés);;;;;;180;G57;180;;
;;;;;;;;;;;
;;;;;;;;;;;
titre;COMPTE DE RESULTAT SYNTHETIQUE;;;;;;;;;;
sous-titre;COMPTE DE RESULTAT;N;% VAR;N-1;%VAR;N-2;;;;;
durée;Durée de l'exercice;;;;;;;;;;
;;;;;;;;;;;
agrégat;Chiffre d'Affaires HT;;;;;;C25;G59;210 + 214 + 218;;
agrégat;Dont % en France;;;;;;C27;G60;[(210 + 214 + 218) - (209 + 215 + 217)] / (210 + 214 + 218);;
agrégat;Dont Vente de Marchandises;;;;;;210;G61;210;;
agrégat;Dont Production vendue (biens et services);;;;;;CY21;G62;214 + 218;;
agrégat;Production stockée et immobilisée;;;;;;CY22;G63;222 + 224;;
agrégat;Ensemble des Achats (Marchandises, Matières premières…);;;;;;C29;G64;234 + 238;;
agrégat;Ensemble des Variations de stocks (Marchandises, Matières premières…);;;;;;C30;G65;236 + 240;;
ratio %;Marge de Production;;;;;;C32;G66;(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240);;
ratio %;Taux de Marge de Production en % du CA;;;;;;CY23;G67;[(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240)] / [210 + 214 + 218];;
agrégat;Autres achats et charges externes ;;;;;;242;G68;242;;
ratio %;Valeur Ajoutée;;;;;;CY24;G69;(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240) - 242;;
ratio %;Taux de Valeur Ajoutée en % du CA;;;;;;CY25;G70;[(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240) - 242] / [210 + 214 + 218];;
agrégat;Subventions d'exploitation;;;;;;226;G71;226;;
agrégat;Salaires, Traitements et charges sociales ;;;;;;C35;G72;250 + 252;;
agrégat;Impôts et taxes;;;;;;244;G73;244;;
ratio %;EBE EXCEDENT BRUT D'EXPLOITATION;;;;;;CY26;G74;270 - (230 - 262) + (254 + 256);;
ratio %;EBE en % du CA;;;;;;CY27;G75;[270 - (230 - 262) + (254 + 256)] / [210 + 214 + 218];;
agrégat;Autres produits - Autres charges;;;;;;CY28;G76;230 - 262;;
ratio %;EBITDA (EARNING BEFORE INTEREST, TAXES, DEPRECIATION AND AMORTIZATION);;;;;;CI6;G77;270 + (254 + 256);;
ratio %;EBITDA en % du CA;;;;;;CY30;G78;[270 + (254 + 256)] / [210 + 214 + 218];;
agrégat;Ensemble des dotations aux amortissements et Provisions d'exploitation;;;;;;CY30;G79;254 + 256;;
sous-total;RESULTAT D'EXPLOITATION;;;;;;270;G80;270;;
ratio %;ROS Résultat d'Exploitation en % du CA;;;;;;CY32;G81;270 / [210 + 214 + 218];;
agrégat;Produits financiers;;;;;;280;G82;280;;
agrégat;Charges financières;;;;;;E45;G83;294;;
sous-total;RESULTAT FINANCIER;;;;;;CY33;G84;280 - 294;;
sous-total;RESULTAT COURANT AVANT IMPOTS (RCAI);;;;;;CY34;G85;270 + 280 - 294;;
ratio %;RCAI en % du CA;;;;;;CY35;G86;[270 + 280 - 294] / [210 + 214 + 218];;
agrégat;Produits exceptionnels ;;;;;;290;G87;290;;
agrégat;Charges exceptionnelles ;;;;;;300;G88;300;;
sous-total;RESULTAT EXCEPTIONNEL;;;;;;CY36;G89;290 - 300;;
agrégat;Impôts sur les Sociétés;;;;;;306;G90;306;;
ratio %;CAF Capacité d'Autofinancement;;;;;;CY37;G91;270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306;;
ratio %;CAF en % du CA;;;;;;CY38;G92;[270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306] / [210 + 214 + 218];;
total;RESULTAT NET;;;;;;310;G93;310;;
ratio %;RN en % du CA;;;;;;CY39;G94;310 / [210 + 214 + 218];;
;;;;;;;;;;;
;;;;;;;;;;;
effectif;Effectif Moyen du Personnel;;;;;;376;G96;376;;
;;;;;;;;;;;
;;;;;;;;;;;
titre;RATIOS;;;;;;;;;;
durée;Durée de l'exercice;;;;;;;;;;
;;;;;;;;;;;
sous-titre ratios;RATIOS D'ACTIVITE;N;;N-1;;N-2;;;;;
sous-total ratios;EXPLOITATION;;;;;;;;;;
agrégat;Stocks * 360;;;;;;CY40;G152;360 × STCK_TOT_NET;360 * (050 + 060 - 052 - 062);
agrégat;Chiffre daffaires;;;;;;C25;G153;CHF_AFF;210 + 214 + 218;
ratio indicateurs;Stocks en nbre de jours de CA;;;;;;CY42;G154;STOCK_TO_CA;(050 + 060 - 052 - 062) / (210 + 214 + 218);
agrégat;Stocks * 360;;;;;;CY40;G155;360 × STCK_TOT_NET;360 * (050 + 060 - 052 - 062);
agrégat;1,20 × Achats (Marchandises, Matières premières et Autres);;;;;;CY43;G156;1,2 × (234 + 238 + 242);1,2 × (234 + 238 + 242);
ratio indicateurs;Délai de rotation des stocks;;;;;;CI21;G157;TX_ROT_STOCK;(360 * (050 + 060 - 052 - 062)) / [1,2 × (234 + 238 + 242)] ;
agrégat;Clients et comptes rattachés (en net) TTC * 360;;;;;;C3A;G158;360 × (068 - 070);360 × (068 - 070);
agrégat;[Chiffre dAffaires France (TTC) + Chiffre d'Affaires Export (HT)] x 360;;;;;;CY44;G159;1,2 × (CHF_AFF - 209 - 215 - 217) + (209 + 215 + 217);1,2 × ( (210 + 214 + 218) - 209 - 215 - 217) + (209 + 215 + 217);
ratio indicateurs;Délai de rotation Clients;;;;;;CI1;G160;TX_ROT_CLIENT;[360 × (068 - 070)] / [1,2 × ( (210 + 214 + 218)- 209 - 215 - 217) + 209 + 215 + 217] ;
agrégat;Dettes fournisseurs et comptes rattachés TTC * 360;;;;;;CY45;G161;360 × 166;360 × 166;
agrégat;1,20 × Achats (Marchandises, Matières premières et Autres);;;;;;CY46;G162;1,2 × (234 + 238 + 242);1,2 × (234 + 238 + 242);
ratio indicateurs;Délai de rotation Fournisseurs;;;;;;CI2;G163;TX_ROT_FOURN;[360 × 166] / [1,2 × (234 + 238 + 242)] ;
agrégat;BFR Net * 360;;;;;;CY47;G164;360 × BFR_NET;360*((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174));
agrégat;Chiffre daffaires;;;;;;C25;G165;CHF_AFF;210 + 214 + 218;
ratio indicateurs;Délai de rotation du BFR Net;;;;;;CI23;G166;TX_ROT_BFR_NET; 360*((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) / (210 + 214 + 218);
;;;;;;;;;;;
sous-total ratios;RENTABILITE;;;;;;;;;;
agrégat;(1-TIS) x (Résultat d'Exploitation + Bénéfice attribué + Perte supportée);;;;;;CY48;G173;0,75 × RES_EXP;0,75 * 310;
agrégat;BFR Net + Immobilisations;;;;;;CY49;G174;BFR_NET + IMMO_TOT_NET;((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) + (044 - 048);
ratio indicateurs;Rentabilité économique des capitaux engagés;;;;;;CI24;G175;ROCE;0,75 * 310 / (((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) + (044 - 048));
;;;;;;;;;;;
sous-total ratios;REPARTITION;;;;;;;;;;
agrégat;Charges de personnel + Participation + Charges sociales;;;;;;C35;G188;250 + 252;250 + 252;
agrégat;Valeur ajoutée;;;;;;CI3;G189;VAL_AJT;210 + 214 + 218 + 222 + 224 - 234 - 238 - 236 - 240 - 242;
ratio indicateurs;Valeur ajoutée revenant aux salariés (et aux organismes sociaux);;;;;;CI4;G190;VAL_AJT_SALARIES;(250 + 252) / (210 + 214 + 218 + 222 + 224 - 234 - 238 - 236 - 240 - 242);
;;;;;;;;;;;
;;;;;;;;;;;
sous-titre ratios;RATIOS D'INVESTISSEMENT;;;;;;;;;;
sous-total ratios;ACTIFS;;;;;;;;;;
agrégat;Immobilisations corporelles nettes;;;;;;C66;G195;028 - 030;028 - 030;
agrégat;Immobilisations corporelles brutes;;;;;;028;G196;028;028;
ratio indicateurs;Ratio de vétusté;;;;;;CI5;G197;RT_VETUST;(028 - 030) / 028;
;;;;;;;;;;;
;;;;;;;;;;;
sous-titre ratios;RATIOS DE LIQUIDITE;;;;;;;;;;
sous-total ratios;TRESORERIE;;;;;;;;;;
agrégat;Disponible ;;;;;;CI25;G211;TRES_DISPO;080 - 082 + 084 - 086;
agrégat;Chiffre d'affaires;;;;;;C25;G212;CHF_AFF;210 + 214 + 218;
ratio indicateurs;Trésorerie disponible sur CA;;;;;;CI26;G213;DISPO_TO_CHF_AFF;(080 - 082 + 084 - 086) / (210 + 214 + 218);
agrégat;Trésorerie Nette;;;;;;BISI28;G214;TRES_NET;non dispo. NC;
agrégat;Chiffre d'affaires;;;;;;C25;G215;CHF_AFF;210 + 214 + 218;
ratio indicateurs;Trésorerie nette sur CA;;;;;;BISI30;G216;TRES_NET_TO_CHF_AFF;NC;
;;;;;;;;;;;
sous-total ratios;LIQUIDITE;;;;;;;;;;
agrégat;Actif circulant en valeur nette (retraitement des charges constatées d'avances);;;;;;BISI31;;NC;NC;
agrégat;Dettes Financières CT + Dettes non Financières;;;;;;BISI32;;NC;NC;
ratio indicateurs;Ratio de liquidité générale;;;;;;BISI33;G219;RT_LIQUID_GEN;NC (DET_FIN_CT non isolable);
agrégat;Trésorerie et equivalant de trésorerie;;;;;;CI25;G223;TRES_DISPO;080 - 082 + 084 - 086;
agrégat;Dettes financières à moins d'un an + Dettes non Financières;;;;;;BISI35;G224;DET_FIN_CT + DET_NOFIN_TOT;NC;
ratio indicateurs;Ratio de liquidité cash;;;;;;BISI36;G225;RT_LIQUID_CASH;NC;
;;;;;;;;;;;
;;;;;;;;;;;
sous-titre ratios;RATIOS D'ENDETTEMENT;;;;;;;;;;
sous-total ratios;LEVIER;;;;;;;;;;
agrégat;Total Dettes Financières ;;;;;;156;G227;DET_FIN_TOT ;156;
agrégat;EBITDA;;;;;;CI6;G228;EBITDA;270 + (254 + 256);
ratio indicateurs;Levier Brut (couverture de la Dette Financière Brute par l'EBITDA);;;;;;CI7;G229;LVRG_BRT;156 / (270 + 254 + 256);
agrégat;Dettes Financières Nettes ;;;;;;CI8;G230;DET_FIN_NET;156 - [(080 + 084) - (082 + 086)];
agrégat;EBITDA;;;;;;CI6;G231;EBITDA;270 + (254 + 256);
ratio indicateurs;Levier Net (couverture de la Dette Financière Nette par l'EBITDA);;;;;;CI9;G232;LVRG_NET;(156 - ((080 + 084) - (082 + 086))) / (270 + 254 + 256);
;;;;;;;;;;;
sous-total ratios;DSCR & ICR;;;;;;;;;;
agrégat;EBITDA - Impôt sur les bénéfices;;;;;;CY52;G233;EBITDA - IMP_SOC;270 + 254 + 256 - 306;
agrégat;Service de la Dette;;;;;;BISI44;G234;DET_SERV;Proxy proposé : Max{(156-1 - 156) , 0} + 294 ;
ratio indicateurs;DSCR (Debt Service Coverage Ratio Corp);;;;;;BISI45;G235;DSCR;(270 + 254 + 256 - 306) / (Max{(156-1 - 156) , 0} + 294);
agrégat;EBITDA - Impôt sur les bénéfices;;;;;;CY52;G239;EBITDA - IMP_SOC;270 + 254 + 256 - 306;
agrégat;Charge d'intérêts;;;;;;294;G240;CHG_FIN_INT;294;
ratio indicateurs;ICR (Interest Coverage Ratio);;;;;;CI10;G241;ICR;(270 + 254 + 256 - 306) / 294;
;;;;;;;;;;;
sous-total ratios;SUR CAF;;;;;;;;;;
agrégat;Dette Financière MLT ;;;;;;BISI49;G251;DET_FIN_MLT;MLT non isolable. NC;
agrégat;Capacité d'Autofinancement;;;;;;CI11;G252;CAF;270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306;
ratio indicateurs;Capacité de remboursement MLT (couverture Dette Financière MLT par la CAF);;;;;;BISI51;G253;CAPA_REMBO_MLT;NC;
;;;;;;;;;;;
sous-total ratios;SUR CFO & FCF;;;;;;;;;;
agrégat;Total Dettes Financières (CT et MLT) ;;;;;;156;G254;DET_FIN_TOT;156;
agrégat;Free Cash Flow;;;;;;CI12;G255;CSH_FLW_FREE;;
ratio indicateurs;Couverture de la Dette Financière Brute par le Free Cash Flow;;;;;;CI13;G256;DET_BRT_TO_FREE;;
agrégat;Dettes Financières Nette (CT et MLT) ;;;;;;CI8;G257;DET_FIN_NET;156 - [(080 + 084) - (082 + 086)];
agrégat;Free Cash Flow;;;;;;CI12;G258;CSH_FLW_FREE;;
ratio indicateurs;Couverture de la Dette Financière Nette par le Free Cash Flow;;;;;;CI14;G259;DET_FIN_TO_FREE;;
;;;;;;;;;;;
;;;;;;;;;;;
sous-titre ratios;RATIOS DE STRUCTURE;;;;;;;;;;
agrégat;Total des dettes financières (CT et MLT) ;;;;;;156;G264;DET_FIN_TOT;156;
agrégat;Total dettes financières (CT et MLT) + Total Capitaux Propres;;;;;;CY54;G265;DET_FIN_TOT + CAP_PROP_TOT;156 + 142;
ratio indicateurs;Dettes Financières & Capitaux propres (Debt-To-Capital Ratio);;;;;;CI15;G266;DEBT_TO_CAP;156 / (156 + 142);
agrégat;Total Dettes * + Engagements de crédit-bail + Effets portés à l'escompte non échus ;;;;;;176;G267;176;176;
agrégat;Total Capitaux Propres;;;;;;142;G268;CAP_PROP_TOT;142;
ratio indicateurs;Total Dettes Sur Capitaux propres (Debt-To-Equity Ratio);;;;;;CI16;G269;DEBT_TO_EQTY;176 / 142;
agrégat;Total Dettes;;;;;;176;G270;176;176;
agrégat;Total Bilan;;;;;;180;G271;TOT_BIL;180;
ratio indicateurs;Total Dettes Sur Total Bilan;;;;;;180;G272;DEBT_TO_BIL;176 / 180;
agrégat;Total Capitaux Propres;;;;;;142;G273;CAP_PROP_TOT ;142;
agrégat;Total Bilan (avec engagements de crédit-bail et EENE);;;;;;180;G274;TOT_BIL;180;
ratio indicateurs;Autonomie Financière (Total Capitaux propres / Total Bilan);;;;;;CI17;G275;RT_AUTO_FIN;142 / 180;
agrégat;FRNG * 360;;;;;;CY55;G282;360 × FRNG;360 * ([142 + 154 + 195] - [044 - 048]);
agrégat;Chiffre d'affaires;;;;;;C25;G283;CHF_AFF;210 + 214 + 218;
ratio indicateurs;Fonds de Roulement en Nbre de jours de CA;;;;;;CI27;G284;TX_FRNG;(360 * ([142 + 154 + 195] - [044 - 048])) / (210 + 214 + 218);
;;;;;;;;;;;
;;;;;;;;;;;
1
2 titre SYNTHESE CODES LIGNES TEMPLATE RUBRIQUES LIASSE OU FORMULES TEMPLATE DETAIL FORMULES
3
4 sous-titre COMPTES SOCIAUX LIASSE 2033 EN EUR N % VAR N-1 %VAR N-2
5 durée Durée de l'exercice Dans tous les cas, il faut une guidance dès qu'il y a un retraitement, expliquer quel retraitement
6 agrégat Conforme Moteur Notation Template IHM BERYL ANALYSE FINANCIERE
7 agrégat Gestionnaire
8
9 titre BILAN ACTIF SYNTHETIQUE
10 Démarche : repartir sur une trame quasi identique que pour les 2050, actif passif cr à la suite, et pas actif passif côte à côte
11 sous-titre ACTIF N % VAR N-1 %VAR N-2 Faut-il préciser si Nbre ou % ?
12 durée Durée de l'exercice Reste à décider pour la situation patrimoniale
13
14 agrégat Fonds commercial (brut) 010 G10 010
15 agrégat Ensemble des Autres immobilisations incorporelles (brut) 014 G11 014
16 agrégat Amortissements et provisions des immobilisations incorporelles CY3 G12 012 + 016
17 sous-total Immobilisations Incorporelles Nettes C0 G9 (010 + 014) - (012 + 016)
18 agrégat Terrains (brut) 426 G14 426
19 agrégat Ensemble des Autres Immobilisations corporelles (brut) yc Engts de CB CY4 G15 028 - 426
20 agrégat Amortissements et provisions des immobilisations corporelles E66 G16 030
21 sous-total Immobilisations Corporelles Nettes (yc Engts de CB) C66 G13 028 - 030
22 agrégat Ensemble des immobilisations financières (brut) 040 G18 040
23 agrégat Amortissement des immobilisations financières 042 G19 042
24 sous-total Immobilisations Financières Nettes C67 G17 040 - 042
25 sous-total ACTIF IMMOBILISE NET (yc ENGTS DE CB) CY1 G7 044 - 048
26 sous-total % Total Immobilisation (Net ) en % du Total Actif (Net) CY2 G8 [044 - 048] / [110 - 112]
27 agrégat Ensemble des Stocks et en-cours (Marchandises, Matières premières…) (brut) CY6 G23 050 + 060
28 agrégat Provisions sur Stock et en-cours CY7 G24 052 + 062
29 sous-total Stocks et en-cours Nets C2 G22 (050 + 060) - (052 + 062)
30 agrégat Créances clients et comptes rattachés (brut) (yc effets escomptés non échus) 068 G26 068
31 agrégat Ensemble des Autres créances et Réalisables (brut) C4 G27 064 + 072 + 092
32 agrégat Provisions sur créances et Réalisables C4A G28 070 + 066 + 074 + 094
33 sous-total Créances clients et Réalisables Nets C4001 G25 (068 + 064 + 072 + 092) - (070 + 066 + 074 + 094)
34 sous-total Ensemble des Stocks et Créances (Net) (yc effets escomptés non échus) C5 G20 (050 + 060) - (052 + 062) + (068 + 064 + 072 + 092) - (070 + 066 + 074 + 094)
35 sous-total % Ensemble des Stocks et Créances (Net) en % du Total Actif (Net) CY5 G21 [(050 + 060) - (052 + 062) + (068 + 064 + 072 + 092) - (070 + 066 + 074 + 094)] / [110 - 112]
36 ratio % BFR Besoin en Fonds de Roulement BRUT CY8 G29 [(050 + 060) + (068 + 064 + 072 + 092)] - [164 + 166 + 172 + 175 + 174]
37 ratio % BFR Besoin en Fonds de Roulement NET C19 G30 (050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)
38 agrégat Valeurs Mobilières de Placement (brut) E12 G33 080
39 agrégat Disponibilités (brut) 084 G34 084
40 agrégat Provisions sur disponibilités et VMP CY10 G35 082 + 086
41 sous-total TRESORERIE ACTIF NET C6 G31 (080 + 084) - (082 + 086)
42 sous-total % Trésorerie Actif (Net) en % du Total Actif (Net) CY9 G32 [(080 + 084) - (082 + 086)] / [110 - 112]
43 total TOTAL ACTIF NET CY11 G36 110 - 112
44
45
46 titre BILAN PASSIF SYNTHETIQUE
47
48 sous-titre PASSIF N % VAR N-1 %VAR N-2
49 durée Durée de l'exercice
50
51 agrégat Capital social 120 G40 120
52 agrégat Ensemble des Réserves et Report à nouveau CY56 G41 126 + 130 + 132 + 134
53 agrégat Résultat de l'exercice E21 G42 136
54 agrégat Ensemble des autres postes (Subventions, Primes…) CY13 G43 124 + 137 + 140
55 sous-total TOTAL CAPITAUX PROPRES 142 G38 142
56 sous-total % Total Capitaux propres en % du Total Passif CY12 G39 142 / 180
57 sous-total PROVISIONS POUR RISQUES ET CHARGES 154 G44 154
58 sous-total % Total Provisions en % du Total Passif CY14 G45 154 / 180
59 agrégat Emprunts et dettes assimilées (yc Engts de CB) 156 G48 156
60 agrégat Comptes Courants d'Associés 173 G49 173
61 sous-total TOTAL DES DETTES FINANCIERES CY15 G46 156 + 173
62 sous-total % Total Dettes financières en % du Total Passif CY16 G47 [156 + 173] / 180
63 ratio % FRNG Fonds de Roulement Net Global CY17 G50 [142 + 154 + 195] - [044 - 048]
64 ratio % GEARING BRUT CY18 G51 [156 + 173] / 142
65 ratio % GEARING NET CY19 G52 [(156 + 173) - ((080 + 084) - (082 + 086))] / 142
66 agrégat Dettes Fournisseurs et comptes rattachés 166 G55 166
67 agrégat Ensemble des Autres dettes non financières C14 G56 164 + 172 + 175 +174
68 sous-total TOTAL DES DETTES NON FINANCIERES C15 G53 164 + 166 + 172 + 175 + 174
69 sous-total % Total Dettes non financières en % du Total Passif CY20 G54 [164 + 166 + 172 + 175 + 174] / 180
70 total TOTAL PASSIF (yc EENE et Engts de CB ré-incorporés) 180 G57 180
71
72
73 titre COMPTE DE RESULTAT SYNTHETIQUE
74 sous-titre COMPTE DE RESULTAT N % VAR N-1 %VAR N-2
75 durée Durée de l'exercice
76
77 agrégat Chiffre d'Affaires HT C25 G59 210 + 214 + 218
78 agrégat Dont % en France C27 G60 [(210 + 214 + 218) - (209 + 215 + 217)] / (210 + 214 + 218)
79 agrégat Dont Vente de Marchandises 210 G61 210
80 agrégat Dont Production vendue (biens et services) CY21 G62 214 + 218
81 agrégat Production stockée et immobilisée CY22 G63 222 + 224
82 agrégat Ensemble des Achats (Marchandises, Matières premières…) C29 G64 234 + 238
83 agrégat Ensemble des Variations de stocks (Marchandises, Matières premières…) C30 G65 236 + 240
84 ratio % Marge de Production C32 G66 (210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240)
85 ratio % Taux de Marge de Production en % du CA CY23 G67 [(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240)] / [210 + 214 + 218]
86 agrégat Autres achats et charges externes 242 G68 242
87 ratio % Valeur Ajoutée CY24 G69 (210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240) - 242
88 ratio % Taux de Valeur Ajoutée en % du CA CY25 G70 [(210 + 214 + 218 + 222 + 224) - (234 + 238 + 236 + 240) - 242] / [210 + 214 + 218]
89 agrégat Subventions d'exploitation 226 G71 226
90 agrégat Salaires, Traitements et charges sociales C35 G72 250 + 252
91 agrégat Impôts et taxes 244 G73 244
92 ratio % EBE EXCEDENT BRUT D'EXPLOITATION CY26 G74 270 - (230 - 262) + (254 + 256)
93 ratio % EBE en % du CA CY27 G75 [270 - (230 - 262) + (254 + 256)] / [210 + 214 + 218]
94 agrégat Autres produits - Autres charges CY28 G76 230 - 262
95 ratio % EBITDA (EARNING BEFORE INTEREST, TAXES, DEPRECIATION AND AMORTIZATION) CI6 G77 270 + (254 + 256)
96 ratio % EBITDA en % du CA CY30 G78 [270 + (254 + 256)] / [210 + 214 + 218]
97 agrégat Ensemble des dotations aux amortissements et Provisions d'exploitation CY30 G79 254 + 256
98 sous-total RESULTAT D'EXPLOITATION 270 G80 270
99 ratio % ROS Résultat d'Exploitation en % du CA CY32 G81 270 / [210 + 214 + 218]
100 agrégat Produits financiers 280 G82 280
101 agrégat Charges financières E45 G83 294
102 sous-total RESULTAT FINANCIER CY33 G84 280 - 294
103 sous-total RESULTAT COURANT AVANT IMPOTS (RCAI) CY34 G85 270 + 280 - 294
104 ratio % RCAI en % du CA CY35 G86 [270 + 280 - 294] / [210 + 214 + 218]
105 agrégat Produits exceptionnels 290 G87 290
106 agrégat Charges exceptionnelles 300 G88 300
107 sous-total RESULTAT EXCEPTIONNEL CY36 G89 290 - 300
108 agrégat Impôts sur les Sociétés 306 G90 306
109 ratio % CAF Capacité d'Autofinancement CY37 G91 270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306
110 ratio % CAF en % du CA CY38 G92 [270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306] / [210 + 214 + 218]
111 total RESULTAT NET 310 G93 310
112 ratio % RN en % du CA CY39 G94 310 / [210 + 214 + 218]
113
114
115 effectif Effectif Moyen du Personnel 376 G96 376
116
117
118 titre RATIOS
119 durée Durée de l'exercice
120
121 sous-titre ratios RATIOS D'ACTIVITE N N-1 N-2
122 sous-total ratios EXPLOITATION
123 agrégat Stocks * 360 CY40 G152 360 × STCK_TOT_NET 360 * (050 + 060 - 052 - 062)
124 agrégat Chiffre d’affaires C25 G153 CHF_AFF 210 + 214 + 218
125 ratio indicateurs Stocks en nbre de jours de CA CY42 G154 STOCK_TO_CA (050 + 060 - 052 - 062) / (210 + 214 + 218)
126 agrégat Stocks * 360 CY40 G155 360 × STCK_TOT_NET 360 * (050 + 060 - 052 - 062)
127 agrégat 1,20 × Achats (Marchandises, Matières premières et Autres) CY43 G156 1,2 × (234 + 238 + 242) 1,2 × (234 + 238 + 242)
128 ratio indicateurs Délai de rotation des stocks CI21 G157 TX_ROT_STOCK (360 * (050 + 060 - 052 - 062)) / [1,2 × (234 + 238 + 242)]
129 agrégat Clients et comptes rattachés (en net) TTC * 360 C3A G158 360 × (068 - 070) 360 × (068 - 070)
130 agrégat [Chiffre d’Affaires France (TTC) + Chiffre d'Affaires Export (HT)] x 360 CY44 G159 1,2 × (CHF_AFF - 209 - 215 - 217) + (209 + 215 + 217) 1,2 × ( (210 + 214 + 218) - 209 - 215 - 217) + (209 + 215 + 217)
131 ratio indicateurs Délai de rotation Clients CI1 G160 TX_ROT_CLIENT [360 × (068 - 070)] / [1,2 × ( (210 + 214 + 218)- 209 - 215 - 217) + 209 + 215 + 217]
132 agrégat Dettes fournisseurs et comptes rattachés TTC * 360 CY45 G161 360 × 166 360 × 166
133 agrégat 1,20 × Achats (Marchandises, Matières premières et Autres) CY46 G162 1,2 × (234 + 238 + 242) 1,2 × (234 + 238 + 242)
134 ratio indicateurs Délai de rotation Fournisseurs CI2 G163 TX_ROT_FOURN [360 × 166] / [1,2 × (234 + 238 + 242)]
135 agrégat BFR Net * 360 CY47 G164 360 × BFR_NET 360*((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174))
136 agrégat Chiffre d’affaires C25 G165 CHF_AFF 210 + 214 + 218
137 ratio indicateurs Délai de rotation du BFR Net CI23 G166 TX_ROT_BFR_NET 360*((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) / (210 + 214 + 218)
138
139 sous-total ratios RENTABILITE
140 agrégat (1-TIS) x (Résultat d'Exploitation + Bénéfice attribué + Perte supportée) CY48 G173 0,75 × RES_EXP 0,75 * 310
141 agrégat BFR Net + Immobilisations CY49 G174 BFR_NET + IMMO_TOT_NET ((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) + (044 - 048)
142 ratio indicateurs Rentabilité économique des capitaux engagés CI24 G175 ROCE 0,75 * 310 / (((050 + 060 - 052 - 062) + (068 + 064 + 072 + 092 - 070 - 066 - 074 - 094) - (164 + 166 + 172 + 175 + 174)) + (044 - 048))
143
144 sous-total ratios REPARTITION
145 agrégat Charges de personnel + Participation + Charges sociales C35 G188 250 + 252 250 + 252
146 agrégat Valeur ajoutée CI3 G189 VAL_AJT 210 + 214 + 218 + 222 + 224 - 234 - 238 - 236 - 240 - 242
147 ratio indicateurs Valeur ajoutée revenant aux salariés (et aux organismes sociaux) CI4 G190 VAL_AJT_SALARIES (250 + 252) / (210 + 214 + 218 + 222 + 224 - 234 - 238 - 236 - 240 - 242)
148
149
150 sous-titre ratios RATIOS D'INVESTISSEMENT
151 sous-total ratios ACTIFS
152 agrégat Immobilisations corporelles nettes C66 G195 028 - 030 028 - 030
153 agrégat Immobilisations corporelles brutes 028 G196 028 028
154 ratio indicateurs Ratio de vétusté CI5 G197 RT_VETUST (028 - 030) / 028
155
156
157 sous-titre ratios RATIOS DE LIQUIDITE
158 sous-total ratios TRESORERIE
159 agrégat Disponible CI25 G211 TRES_DISPO 080 - 082 + 084 - 086
160 agrégat Chiffre d'affaires C25 G212 CHF_AFF 210 + 214 + 218
161 ratio indicateurs Trésorerie disponible sur CA CI26 G213 DISPO_TO_CHF_AFF (080 - 082 + 084 - 086) / (210 + 214 + 218)
162 agrégat Trésorerie Nette BISI28 G214 TRES_NET non dispo. NC
163 agrégat Chiffre d'affaires C25 G215 CHF_AFF 210 + 214 + 218
164 ratio indicateurs Trésorerie nette sur CA BISI30 G216 TRES_NET_TO_CHF_AFF NC
165
166 sous-total ratios LIQUIDITE
167 agrégat Actif circulant en valeur nette (retraitement des charges constatées d'avances) BISI31 NC NC
168 agrégat Dettes Financières CT + Dettes non Financières BISI32 NC NC
169 ratio indicateurs Ratio de liquidité générale BISI33 G219 RT_LIQUID_GEN NC (DET_FIN_CT non isolable)
170 agrégat Trésorerie et equivalant de trésorerie CI25 G223 TRES_DISPO 080 - 082 + 084 - 086
171 agrégat Dettes financières à moins d'un an + Dettes non Financières BISI35 G224 DET_FIN_CT + DET_NOFIN_TOT NC
172 ratio indicateurs Ratio de liquidité cash BISI36 G225 RT_LIQUID_CASH NC
173
174
175 sous-titre ratios RATIOS D'ENDETTEMENT
176 sous-total ratios LEVIER
177 agrégat Total Dettes Financières 156 G227 DET_FIN_TOT 156
178 agrégat EBITDA CI6 G228 EBITDA 270 + (254 + 256)
179 ratio indicateurs Levier Brut (couverture de la Dette Financière Brute par l'EBITDA) CI7 G229 LVRG_BRT 156 / (270 + 254 + 256)
180 agrégat Dettes Financières Nettes CI8 G230 DET_FIN_NET 156 - [(080 + 084) - (082 + 086)]
181 agrégat EBITDA CI6 G231 EBITDA 270 + (254 + 256)
182 ratio indicateurs Levier Net (couverture de la Dette Financière Nette par l'EBITDA) CI9 G232 LVRG_NET (156 - ((080 + 084) - (082 + 086))) / (270 + 254 + 256)
183
184 sous-total ratios DSCR & ICR
185 agrégat EBITDA - Impôt sur les bénéfices CY52 G233 EBITDA - IMP_SOC 270 + 254 + 256 - 306
186 agrégat Service de la Dette BISI44 G234 DET_SERV Proxy proposé : Max{(156-1 - 156) , 0} + 294
187 ratio indicateurs DSCR (Debt Service Coverage Ratio Corp) BISI45 G235 DSCR (270 + 254 + 256 - 306) / (Max{(156-1 - 156) , 0} + 294)
188 agrégat EBITDA - Impôt sur les bénéfices CY52 G239 EBITDA - IMP_SOC 270 + 254 + 256 - 306
189 agrégat Charge d'intérêts 294 G240 CHG_FIN_INT 294
190 ratio indicateurs ICR (Interest Coverage Ratio) CI10 G241 ICR (270 + 254 + 256 - 306) / 294
191
192 sous-total ratios SUR CAF
193 agrégat Dette Financière MLT BISI49 G251 DET_FIN_MLT MLT non isolable. NC
194 agrégat Capacité d'Autofinancement CI11 G252 CAF 270 + (254 + 256) + 280 - 294 + 290 - (300 - 347 - 348) - 306
195 ratio indicateurs Capacité de remboursement MLT (couverture Dette Financière MLT par la CAF) BISI51 G253 CAPA_REMBO_MLT NC
196
197 sous-total ratios SUR CFO & FCF
198 agrégat Total Dettes Financières (CT et MLT) 156 G254 DET_FIN_TOT 156
199 agrégat Free Cash Flow CI12 G255 CSH_FLW_FREE
200 ratio indicateurs Couverture de la Dette Financière Brute par le Free Cash Flow CI13 G256 DET_BRT_TO_FREE
201 agrégat Dettes Financières Nette (CT et MLT) CI8 G257 DET_FIN_NET 156 - [(080 + 084) - (082 + 086)]
202 agrégat Free Cash Flow CI12 G258 CSH_FLW_FREE
203 ratio indicateurs Couverture de la Dette Financière Nette par le Free Cash Flow CI14 G259 DET_FIN_TO_FREE
204
205
206 sous-titre ratios RATIOS DE STRUCTURE
207 agrégat Total des dettes financières (CT et MLT) 156 G264 DET_FIN_TOT 156
208 agrégat Total dettes financières (CT et MLT) + Total Capitaux Propres CY54 G265 DET_FIN_TOT + CAP_PROP_TOT 156 + 142
209 ratio indicateurs Dettes Financières & Capitaux propres (Debt-To-Capital Ratio) CI15 G266 DEBT_TO_CAP 156 / (156 + 142)
210 agrégat Total Dettes * + Engagements de crédit-bail + Effets portés à l'escompte non échus 176 G267 176 176
211 agrégat Total Capitaux Propres 142 G268 CAP_PROP_TOT 142
212 ratio indicateurs Total Dettes Sur Capitaux propres (Debt-To-Equity Ratio) CI16 G269 DEBT_TO_EQTY 176 / 142
213 agrégat Total Dettes 176 G270 176 176
214 agrégat Total Bilan 180 G271 TOT_BIL 180
215 ratio indicateurs Total Dettes Sur Total Bilan 180 G272 DEBT_TO_BIL 176 / 180
216 agrégat Total Capitaux Propres 142 G273 CAP_PROP_TOT 142
217 agrégat Total Bilan (avec engagements de crédit-bail et EENE) 180 G274 TOT_BIL 180
218 ratio indicateurs Autonomie Financière (Total Capitaux propres / Total Bilan) CI17 G275 RT_AUTO_FIN 142 / 180
219 agrégat FRNG * 360 CY55 G282 360 × FRNG 360 * ([142 + 154 + 195] - [044 - 048])
220 agrégat Chiffre d'affaires C25 G283 CHF_AFF 210 + 214 + 218
221 ratio indicateurs Fonds de Roulement en Nbre de jours de CA CI27 G284 TX_FRNG (360 * ([142 + 154 + 195] - [044 - 048])) / (210 + 214 + 218)
222
223

251
f

File diff suppressed because one or more lines are too long

@ -19,6 +19,26 @@ impl ToString for FillMergedCells {
}
}
#[derive(Clone, Debug, ValueEnum)]
pub enum IncludeHidden {
None,
Rows,
Columns,
Both,
}
impl ToString for IncludeHidden {
fn to_string(&self) -> String {
match self {
IncludeHidden::None => "none".into(),
IncludeHidden::Rows => "rows".into(),
IncludeHidden::Columns => "columns".into(),
IncludeHidden::Both => "both".into(),
}
}
}
#[derive(Clone, Debug, ValueEnum)]
pub enum TrimSpaces {
End,
@ -71,8 +91,8 @@ pub struct Arguments {
#[arg(short, long)]
pub replace_separator_by: Option<String>,
/// include hidden lines to output
#[arg(short, long, default_value_t=false)]
pub include_hidden_rows: bool,
#[arg(short, long, default_value_t=IncludeHidden::None)]
pub include_hidden: IncludeHidden,
/// If merged cells, fill horizontally, vertically, both, or none
#[arg(short, long, default_value_t = FillMergedCells::None)]
pub fill_merged_cells: FillMergedCells,
@ -82,7 +102,16 @@ pub struct Arguments {
/// Trim white spaces at end of cells
#[arg(short, long, default_value_t = TrimSpaces::None)]
pub trim: TrimSpaces,
/// number the rows
/// number the rows in first cell of each line
#[arg(short, long, default_value_t = NumberRows::None)]
pub number_rows: NumberRows,
/// avoid nth first rows of xlsx file
#[arg(short = 'k', long, default_value_t= 0)]
pub skip_rows: u32,
/// change end of line character
#[arg(short, long, default_value_t = String::from("\n"))]
pub end_of_line: String,
/// replacement for end of line character inside cells
#[arg(short = 'R', long)]
pub replace_end_of_line_by: Option<String>,
}

@ -1,7 +1,7 @@
use std::path::Path;
use umya_spreadsheet::{Range, Worksheet, reader};
use umya_spreadsheet::{Cell, Range, Worksheet, reader};
use crate::arguments::{Arguments, NumberRows, TrimSpaces};
use crate::arguments::{Arguments, IncludeHidden, NumberRows, TrimSpaces};
use crate::error::Error;
pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
@ -9,7 +9,6 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
.expect(format!("Can't open {}", args.file).as_str());
if args.list_worksheets {
println!("Liste of worksheets :");
let mut i = 0;
let sheets = book.get_sheet_collection();
@ -21,6 +20,13 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
return Ok(());
}
let (include_hidden_columns, include_hidden_rows) = match args.include_hidden {
IncludeHidden::None => (false, false),
IncludeHidden::Rows => (false, true),
IncludeHidden::Columns => (true, false),
IncludeHidden::Both => (true, true),
};
// get the sheet from name or number if specified, else the first of the spreadsheet
let sheet = match book.get_sheet_by_name(&args.worksheet) {
Some(sheet) => sheet,
@ -53,7 +59,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
let mut num_rows = 0;
for cell in sheet.get_cell_collection() {
let value = cell.get_formatted_value();
let value = get_value(cell); //.get_formatted_value();
if value == "" {
continue;
@ -69,20 +75,37 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
num_rows = row_num;
}
}
let num_cols = num_cols;
let num_rows = num_rows;
// get hidden columns if needed
let mut hidden_columns: Vec<u32> = Vec::new();
if !include_hidden_columns {
for i in 1..=num_cols {
if let Some(dim) = sheet.get_column_dimension_by_number(&i) {
if *dim.get_hidden() {
hidden_columns.push(i);
}
}
}
}
// create the empty row string
let mut empty_row = String::from("");
for _ in 1..num_cols {
for _ in 1..num_cols - (hidden_columns.len() as u32) {
empty_row.push(args.separator);
}
empty_row += args.end_of_line.as_str();
// TODO get every hidden columns
if args.skip_rows > num_rows {
return Err(Error::new("Number of rows < number of rows to skip"));
}
// for each row...
let mut seq_row_num = 0;
for i in 1..=num_rows {
// Avoid hidden rows if asked for
if !args.include_hidden_rows {
for i in (args.skip_rows+1)..=num_rows {
// take hidden rows if asked for
if !include_hidden_rows {
match sheet.get_row_dimension(&i) {
Some(dim) => {
if *dim.get_hidden() {
@ -92,7 +115,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
None => {
seq_row_num += 1;
number_row(&args.number_rows, args.separator, seq_row_num, i);
println!("{}", empty_row);
print!("{}", empty_row);
continue;
}
}
@ -105,6 +128,10 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
// for each column in row...
let mut first = true;
for j in 1..=num_cols {
// if the column j has to be hidden, go to the next
if hidden_columns.contains(&j) {
continue;
}
if first {
first = false;
} else {
@ -113,7 +140,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
let cell = match sheet.get_cell((j, i)) {
Some(cell) => cell,
None => break,
None => continue,
};
// get value from cell depending on merged cells and fill merged policy
@ -124,11 +151,11 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
*cell_coordinate.get_row_num(),
) {
value = match sheet.get_cell((col, row)) {
Some(merged_cell) => merged_cell.get_formatted_value(),
Some(merged_cell) => get_value(merged_cell), //.get_formatted_value(),
None => String::from(""),
}
} else {
value = cell.get_formatted_value();
value = get_value(cell); //.get_formatted_value();
}
// apply modifications to cells value (trim spaces, replace separator chars, line breaks etc.)
@ -136,7 +163,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
TrimSpaces::End => String::from(value.trim_end()),
TrimSpaces::Start => String::from(value.trim_start()),
TrimSpaces::Both => String::from(value.trim()),
TrimSpaces::None => value,
TrimSpaces::None => value,
};
value = value.replace('\r', "").replace('\n', " ");
if let Some(ref replacement) = args.replace_separator_by {
@ -152,9 +179,22 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
));
}
}
if let Some(ref replacement) = args.replace_end_of_line_by {
value = value.replace(&args.end_of_line, replacement);
} else {
if value.contains(&args.end_of_line) {
return Err(Error::new(
format!(
"Cell {} contains end of line string, use -R to choose a replacement string",
cell.get_coordinate().get_coordinate()
)
.as_str(),
));
}
}
print!("{}", value);
}
println!("");
print!("{}", args.end_of_line);
}
Ok(())
@ -164,7 +204,19 @@ fn number_row(number_row: &NumberRows, separator: char, seqrownum: u32, i: u32)
match number_row {
NumberRows::AsIs => print!("{}{}", i, separator),
NumberRows::Sequential => print!("{}{}", seqrownum, separator),
NumberRows::None => {},
NumberRows::None => {}
}
}
fn get_value(cell: &Cell) -> String {
match cell.get_raw_value() {
umya_spreadsheet::CellRawValue::String(val) => String::from(val.clone()),
umya_spreadsheet::CellRawValue::RichText(text) => (*text.get_text()).to_owned(),
umya_spreadsheet::CellRawValue::Lazy(lazy) => (*lazy.clone()).to_owned(),
umya_spreadsheet::CellRawValue::Numeric(num) => format!("{}", num),
umya_spreadsheet::CellRawValue::Bool(bo) => format!("{}", bo),
umya_spreadsheet::CellRawValue::Error(_) => String::from(""),
umya_spreadsheet::CellRawValue::Empty => String::from(""),
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save