{"id":4311,"date":"2017-08-21T14:37:55","date_gmt":"2017-08-21T14:37:55","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-generate-custom-excel-reports-in-netsuite-2\/"},"modified":"2026-07-28T18:26:38","modified_gmt":"2026-07-28T18:26:38","slug":"comment-generer-des-rapports-excel-personnalises-dans-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-generer-des-rapports-excel-personnalises-dans-netsuite\/","title":{"rendered":"Comment g\u00e9n\u00e9rer des rapports Excel personnalis\u00e9s dans NetSuite ?"},"content":{"rendered":"","protected":false},"template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","ga_subtitle":"Tirez parti des fonctionnalit\u00e9s de script de NetSuite et du format Excel bas\u00e9 sur XML pour cr\u00e9er des rapports dynamiques et personnalis\u00e9s sous forme de feuilles de calcul \u00e0 partir des donn\u00e9es issues de recherches enregistr\u00e9es.","ga_short_answer":"Il est possible de g\u00e9n\u00e9rer des rapports Excel personnalis\u00e9s dans NetSuite en cr\u00e9ant un fichier Excel au format XML. Cela implique d\u2019utiliser le module N\/file pour cr\u00e9er un fichier encod\u00e9 en base64, \u00e9ventuellement en exploitant FreeMarker avec des r\u00e9sultats de recherche enregistr\u00e9s pour les donn\u00e9es dynamiques, puis de l\u2019enregistrer dans le \u00ab File Cabinet \u00bb.","ga_scenario":"Les entreprises ont souvent besoin de rapports Excel personnalis\u00e9s qui vont au-del\u00e0 des exportations NetSuite standard et n\u00e9cessitent une mise en forme sp\u00e9cifique, des donn\u00e9es dynamiques issues de recherches enregistr\u00e9es ou des formules Excel int\u00e9gr\u00e9es. Le d\u00e9fi consiste \u00e0 g\u00e9n\u00e9rer par programmation ces fichiers .xls complexes au sein de NetSuite et \u00e0 les stocker afin de pouvoir y acc\u00e9der.","ga_solution":"Le classeur Excel (.xls) est un format permettant la cr\u00e9ation d\u2019un fichier Excel bas\u00e9 sur le langage XML.\n\nPour cr\u00e9er un fichier Excel par programmation au sein de NetSuite, le module `N\/file` est utilis\u00e9. NetSuite prend en charge la cr\u00e9ation de fichiers Excel .xls par script, ce qui permet de les enregistrer dans le \u00ab File Cabinet \u00bb sous le type de fichier \u00ab EXCEL \u00bb (application\/vnd.ms-excel).\n\nLe contenu du fichier doit \u00eatre encod\u00e9 en base64 et respecter le format de classeur Excel. Bien que la documentation relative au format de classeur ne soit pas tr\u00e8s d\u00e9taill\u00e9e, celui-ci pr\u00e9sente g\u00e9n\u00e9ralement une structure s\u2019apparentant \u00e0 un grand tableau, combinant du XML avec des \u00e9l\u00e9ments HTML\/CSS.\n\nPour g\u00e9n\u00e9rer le fichier de feuille de calcul, il est possible d\u2019utiliser <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/how-do-netsuite-suitescript-1-0-search-apis-differ-nlapiloadsearch-vs-nlapisearchrecord\/\">les r\u00e9sultats d\u2019une recherche enregistr\u00e9e<\/a> et FreeMarker afin d\u2019ajouter des donn\u00e9es dynamiques au rapport. Bien que le moteur de rendu de mod\u00e8les natif de NetSuite soit principalement con\u00e7u pour g\u00e9n\u00e9rer des fichiers PDF et HTML, le principe de base consistant \u00e0 g\u00e9n\u00e9rer du XML Excel et \u00e0 utiliser FreeMarker avec les donn\u00e9es d\u2019une recherche enregistr\u00e9e reste une option viable pour les solutions personnalis\u00e9es.\n\nDe plus, le r\u00e9sultat \u00e9tant une feuille de calcul Excel, il est possible d\u2019y int\u00e9grer des formules Excel. Il est important de noter que les formules utilisent un positionnement relatif par rapport \u00e0 la cellule active. Par exemple, si un utilisateur se trouve dans la cellule B12 et souhaite additionner les cellules A2 \u00e0 A10, la formule sera la suivante :\n```\nSUM(R[-10]C[-1]:R[-2]C[-1])\n```","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T10:37:55-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"How to generate a custom Excel report from within NetSuite","ga_ans_id":"ANS-0652","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The `nlapiCreateFile` API is a SuiteScript 1.0 function and has been superseded by the `N\/file` module in SuiteScript 2.x.; While NetSuite's template renderer uses FreeMarker and can process saved search results, it is primarily designed for generating PDF and HTML output. Directly supplying an Excel XML template to the native template renderer may result in an error, as it assumes the output is for a PDF generator.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[94],"class_list":["post-4311","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-avance"],"taxonomy_info":{"ga_category":[{"value":108,"label":"D\u00e9veloppement SuiteScript"},{"value":23,"label":"SuiteScript Development"},{"value":108,"label":"D\u00e9veloppement SuiteScript"}],"ga_audience":[{"value":10,"label":"Developer\/SuiteScript"}],"ga_difficulty":[{"value":94,"label":"Avanc\u00e9"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry"}],"about":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/types\/qa_entry"}],"version-history":[{"count":1,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4311\/revisions"}],"predecessor-version":[{"id":6232,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4311\/revisions\/6232"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4311"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4311"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4311"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}