{"id":2647,"date":"2017-08-21T15:37:17","date_gmt":"2017-08-21T15:37:17","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-generate-an-excel-file-from-xml-content-in-netsuite-suitescript-2-x-2\/"},"modified":"2026-07-28T18:25:06","modified_gmt":"2026-07-28T18:25:06","slug":"comment-generer-un-fichier-excel-a-partir-dun-contenu-xml-dans-netsuite-suitescript-2-x","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-generer-un-fichier-excel-a-partir-dun-contenu-xml-dans-netsuite-suitescript-2-x\/","title":{"rendered":"Comment g\u00e9n\u00e9rer un fichier Excel \u00e0 partir d&rsquo;un contenu XML dans NetSuite SuiteScript 2.x"},"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":"Ce guide explique comment cr\u00e9er et enregistrer par programmation un fichier Excel (.xls) dans NetSuite en construisant son contenu XML \u00e0 l'aide des fonctions du module \u00ab fichier \u00bb de SuiteScript 2.x.","ga_short_answer":"Pour cr\u00e9er un fichier Excel dans NetSuite \u00e0 l\u2019aide de SuiteScript 2.x, g\u00e9n\u00e9rez le contenu XML Excel sous forme de cha\u00eene de caract\u00e8res. Utilisez `file.create` pour instancier un objet fichier avec le type XMLDOC, le nom et le contenu. D\u00e9finissez le dossier souhait\u00e9 et les propri\u00e9t\u00e9s d\u2019encodage, puis utilisez `file.save` pour enregistrer le fichier dans le \u00ab File Cabinet \u00bb de NetSuite.","ga_scenario":"Un utilisateur de NetSuite doit g\u00e9n\u00e9rer par programmation une feuille de calcul Excel (.xls) contenant des donn\u00e9es sp\u00e9cifiques et l'enregistrer dans le \u00ab File Cabinet \u00bb. L'exigence est de cr\u00e9er le fichier Excel directement \u00e0 partir d'un contenu XML plut\u00f4t que d'utiliser un fichier CSV ou un autre format plus simple, ce qui permet un formatage plus complexe ou des structures \u00e0 plusieurs feuilles.","ga_solution":"Pour g\u00e9n\u00e9rer un fichier Excel \u00e0 partir d\u2019un contenu XML dans NetSuite \u00e0 l\u2019aide de SuiteScript 2.x, proc\u00e9dez comme suit :\n\n1.  **Pr\u00e9parez l\u2019environnement SuiteScript 2.x :** assurez-vous que votre script est d\u00e9fini avec `@NApiVersion 2.x` et qu\u2019il n\u00e9cessite le module `N\/file`. La logique principale sera int\u00e9gr\u00e9e \u00e0 une fonction, qui pourra ensuite \u00eatre appel\u00e9e \u00e0 partir d\u2019un point d\u2019entr\u00e9e SuiteScript 2.x appropri\u00e9 (par exemple, `execute` pour un script planifi\u00e9).\n\n2.  **Impl\u00e9mentez la logique de g\u00e9n\u00e9ration de fichier :** L\u2019extrait de code SuiteScript 2.x suivant montre comment cr\u00e9er un fichier Excel nomm\u00e9 \u00ab helloGeorge.xls \u00bb comportant deux feuilles contenant des exemples de donn\u00e9es. Notez l\u2019utilisation de `file.create` et `file.save` issus du module `N\/file`, ainsi que les affectations directes de propri\u00e9t\u00e9s pour `folder` et `encoding`.\n\n```\njavascript\n\/**\n * @NApiVersion 2.x\n * @NScriptType ScheduledScript \/\/ Example script type; adjust as needed\n *\/\ndefine(['N\/file'], function(file) {\n    function doit(){\n        var xlsFile = file.create({\n            name: 'helloGeorge.xls',\n            fileType: file.Type.XMLDOC,\n            contents: '<?xml version\"1.0\"?> <?mso-application progid\"Excel.Sheet\"?> <Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:html=\"http:\/\/www.w3.org\/TR\/REC-html40\"> <DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\"> <\/DocumentProperties><ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"> <ProtectStructure>False<\/ProtectStructure> <ProtectWindows>False<\/ProtectWindows><\/ExcelWorkbook> <Styles> <Style ss:ID=\"Default\" ss:Name=\"Normal\"> <Alignment ss:Vertical=\"Bottom\" \/> <Borders \/> <Font \/> <Interior \/> <NumberFormat \/> <Protection \/> <\/Style><\/Styles> <Worksheet ss:Name=\"Sample Sheet 1\"> <Table ss:ExpandedColumnCount=\"2\" x:FullColumns=\"1\" x:FullRows=\"1\" ID=\"Table1\"><Column ss:Width=\"150\" \/><Column ss:Width=\"200\" \/><Row> <Cell><Data ss:Type=\"Number\">1<\/Data><\/Cell> <Cell><Data ss:Type=\"Number\">2<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"Number\">3<\/Data><\/Cell> <Cell><Data ss:Type=\"Number\">4<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"Number\">5<\/Data><\/Cell> <Cell><Data ss:Type=\"Number\">6<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"Number\">7<\/Data><\/Cell> <Cell><Data ss:Type=\"Number\">8<\/Data><\/Cell><\/Row><\/Table><\/Worksheet><Worksheet ss:Name=\"Sample Sheet 2\"><Table ss:ExpandedColumnCount=\"2\" x:FullColumns=\"1\" x:FullRows=\"1\" ID=\"Table2\"><Column ss:Width=\"150\" \/><Column ss:Width=\"200\" \/><Row> <Cell><Data ss:Type=\"String\">A<\/Data><\/Cell> <Cell><Data ss:Type=\"String\">B<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"String\">C<\/Data><\/Cell> <Cell><Data ss:Type=\"String\">D<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"String\">E<\/Data><\/Cell> <Cell><Data ss:Type=\"String\">F<\/Data><\/Cell><\/Row><Row> <Cell><Data ss:Type=\"String\">G<\/Data><\/Cell> <Cell><Data ss:Type=\"String\">H<\/Data><\/Cell><\/Row><\/Table><\/Worksheet><\/Workbook>'\n        });\n        xlsFile.folder = -15; \/\/ -15 typically refers to the \"Attachments Received\" folder\n        xlsFile.encoding = 'windows-1252';\n        file.save({\n            file: xlsFile\n        });\n    }\n\n    \/\/ Call the function. In a typical SuiteScript 2.x implementation,\n    \/\/ this would be part of an exported entry point (e.g., return { execute: doit };)\n    \/\/ or called directly if the script type allows for immediate execution.\n    doit();\n});\n```","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T17:37:17+02:00","ga_date_verified":"2026-07-05","ga_source_subject":"nlapiCreateFile to create Excel","ga_ans_id":"ANS-0908","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The function `nlapiCreateFile` is a SuiteScript 1.0 function, and the current recommended version is SuiteScript 2.x, which uses `file.create`.; The function `nlapiSubmitFile` is a SuiteScript 1.0 function, and the current recommended version is SuiteScript 2.x, which uses `file.save`.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-2647","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"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":92,"label":"Niveau interm\u00e9diaire"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2647","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\/2647\/revisions"}],"predecessor-version":[{"id":4567,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2647\/revisions\/4567"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=2647"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=2647"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=2647"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=2647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}