diff --git a/src/app/components/analysis-panel/analysis-panel.component.html b/src/app/components/analysis-panel/analysis-panel.component.html
index f2b31d21e6aa08b502d585eff39b63832f77f0e9..27d875219ea0293cf0d777d5938b4163ee66f087 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.html
+++ b/src/app/components/analysis-panel/analysis-panel.component.html
@@ -142,7 +142,7 @@
           <div class="network-footer-toolbar-inner-container">
 
             <ng-container *ngIf="myConfig.showFooterButtonScreenshot">
-              <button class="button is-primary is-rounded has-tooltip network-footer-toolbar-element"
+              <button class="button is-primary is-rounded has-tooltip network-footer-toolbar-element footer-buttons"
                       pTooltip="Take a screenshot of the current network." tooltipStyleClass="drgstn" tooltipPosition="top" (click)="toImage()">
                   <span class="icon">
                     <i class="fas fa-camera" aria-hidden="true"></i>
@@ -153,19 +153,27 @@
               </button>
             </ng-container>
 
-            <div class="field network-footer-toolbar-element">
-              <p class="control footer-buttons">
-                <a [href]="graphmlLink()" class="button is-success is-rounded has-tooltip"
-                   pTooltip="Export this network as .graphml file." tooltipStyleClass="drgstn" tooltipPosition="top">
-                  <span class="icon">
-                    <i class="fas fa-download" aria-hidden="true"></i>
-                  </span>
-                  <span [ngClass]="{'text-normal':smallStyle}">
-                    Export as .graphml
-                  </span>
-                </a>
-              </p>
-            </div>
+            <ng-container *ngIf="myConfig.showFooterButtonScreenshot">
+              <button
+                (click)="graphmlLink()"
+                class="
+                  button
+                  is-success is-rounded
+                  has-tooltip
+                  network-footer-toolbar-element
+                "
+                pTooltip="Export this network as .graphml file."
+                tooltipStyleClass="drgstn"
+                tooltipPosition="top"
+              >
+                <span class="icon">
+                  <i class="fas fa-download" aria-hidden="true"></i>
+                </span>
+                <span [ngClass]="{ 'text-normal': smallStyle }"
+                >Export as .graphml</span
+                >
+              </button>
+            </ng-container>
 
             <!--          <div class="field">-->
             <!--            <p class="control footer-buttons">-->
diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts
index 23ed1cd4d68c3c3e8df5f55cb902c84dc4190829..c912f98a1247a12f7382742f035948f7152e6c1d 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.ts
+++ b/src/app/components/analysis-panel/analysis-panel.component.ts
@@ -32,7 +32,7 @@ import {NetworkSettings} from '../../network-settings';
 import {NetexControllerService} from 'src/app/services/netex-controller/netex-controller.service';
 import {defaultConfig, IConfig} from 'src/app/config';
 import { mapCustomEdge, mapCustomNode } from 'src/app/main-network';
-import { removeDuplicateObjectsFromList } from 'src/app/utils';
+import { downLoadFile, removeDuplicateObjectsFromList } from 'src/app/utils';
 
 
 declare var vis: any;
@@ -394,8 +394,11 @@ export class AnalysisPanelComponent implements OnInit, OnChanges {
     return `${environment.backend}task_result/?token=${this.token}&view=${view}&fmt=csv`;
   }
 
-  public graphmlLink(): string {
-    return `${environment.backend}graph_export/?token=${this.token}`;
+  public graphmlLink() {
+    const data = {nodes: this.nodeData.nodes.get(), edges: this.nodeData.edges.get()}
+    this.netex.graphmlLink(data).subscribe(response => {
+      return downLoadFile(response, "application/xml");
+    })
   }
 
   public inferEdgeGroup(edge: object): EdgeType {
diff --git a/src/app/config.ts b/src/app/config.ts
index 62a8ab8c9060c2ad3b3726a9671ce85b363c39e1..ead040c5b92c3de00de30da88495a76caf879562 100644
--- a/src/app/config.ts
+++ b/src/app/config.ts
@@ -48,6 +48,7 @@ export interface IConfig {
   showFooter: boolean;
   showFooterButtonExpression: boolean;
   showFooterButtonScreenshot: boolean;
+  showFooterButtonExportGraphml: boolean;
   showLegend: boolean;
   showLegendNodes: boolean;
   showLegendEdges: boolean;
@@ -86,6 +87,7 @@ export const defaultConfig: IConfig = {
   showLegend: true,
   showFooterButtonExpression: true,
   showFooterButtonScreenshot: true,
+  showFooterButtonExportGraphml: true,
   identifier: 'symbol',
   interactionDrugProtein: 'DrugBank',
   interactionProteinProtein: 'STRING',
diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html
index cb503e69770bf76e87a9019b236d9791e6369b9a..49c19fc89b778fa7be6a2609e19fb63333720568 100644
--- a/src/app/pages/explorer-page/explorer-page.component.html
+++ b/src/app/pages/explorer-page/explorer-page.component.html
@@ -175,7 +175,7 @@
                   <button
                     (click)="toImage()"
                     class="
-                      button
+                      button footer-buttons
                       is-primary is-rounded
                       has-tooltip
                       network-footer-toolbar-element
@@ -193,6 +193,28 @@
                   </button>
                 </ng-container>
 
+                <ng-container *ngIf="myConfig.showFooterButtonExportGraphml">
+                  <button
+                    (click)="graphmlLink()"
+                    class="
+                      button footer-buttons
+                      is-success is-rounded
+                      has-tooltip
+                      network-footer-toolbar-element
+                    "
+                    pTooltip="Export this network as .graphml file."
+                    tooltipStyleClass="drgstn"
+                    tooltipPosition="top"
+                  >
+                    <span class="icon">
+                      <i class="fas fa-download" aria-hidden="true"></i>
+                    </span>
+                    <span [ngClass]="{ 'text-normal': smallStyle }"
+                    >Export as .graphml</span
+                    >
+                  </button>
+                </ng-container>
+
                 <ng-container *ngIf="myConfig.showFooterButtonExpression">
                   <div
                     class="
diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts
index 5a1deefb73365683b418f9743b44f0d2d8d39ead..4a861930abe19b963fe58003a5bf95c1ddaff333 100644
--- a/src/app/pages/explorer-page/explorer-page.component.ts
+++ b/src/app/pages/explorer-page/explorer-page.component.ts
@@ -25,7 +25,7 @@ import domtoimage from 'dom-to-image';
 import {NetworkSettings} from '../../network-settings';
 import {defaultConfig, EdgeGroup, IConfig, InteractionDatabase, NodeGroup} from '../../config';
 import {NetexControllerService} from 'src/app/services/netex-controller/netex-controller.service';
-import {removeDuplicateObjectsFromList} from '../../utils'
+import {downLoadFile, removeDuplicateObjectsFromList} from '../../utils'
 import * as merge from 'lodash/fp/merge';
 import { AnalysisPanelComponent } from 'src/app/components/analysis-panel/analysis-panel.component';
 
@@ -339,6 +339,13 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
     });
   }
 
+  public graphmlLink() {
+    const data = {nodes: this.nodeData.nodes.get(), edges: this.nodeData.edges.get()}
+    this.netex.graphmlLink(data).subscribe(response => {
+      return downLoadFile(response, "application/xml");
+    })
+  }
+
   public async openSummary(item: Wrapper, zoom: boolean) {
     this.selectedWrapper = item;
     if (zoom) {
diff --git a/src/app/services/netex-controller/netex-controller.service.ts b/src/app/services/netex-controller/netex-controller.service.ts
index 49772e96ca5a631a3c819fa906ccb3600b72b6d3..4992123d0b3552774823b673c8fe0a54d8e5b1f7 100644
--- a/src/app/services/netex-controller/netex-controller.service.ts
+++ b/src/app/services/netex-controller/netex-controller.service.ts
@@ -3,7 +3,7 @@ import {environment} from '../../../environments/environment';
 import {HttpClient, HttpParams} from '@angular/common/http';
 import {AlgorithmType, QuickAlgorithmType} from '../analysis/analysis.service';
 import { Observable } from 'rxjs';
-import { Tissue, Node} from 'src/app/interfaces';
+import { Tissue, Node, EdgeType} from 'src/app/interfaces';
 import { InteractionDrugProteinDB } from 'src/app/config';
 
 @Injectable({
@@ -107,4 +107,12 @@ export class NetexControllerService {
     }
     return this.http.post<any>(`${environment.backend}adjacent_drugs/`, params);
   }
+
+  public graphmlLink(graph_data: {edges: EdgeType[], nodes: Node[]}) {
+    /**
+     * Sends complete graph data to backend where it is written to graphml File.
+     * The file is returned as download for the user.
+     */
+    return this.http.post(`${environment.backend}graph_export/`, graph_data, {responseType: 'text'});
+  }
 }
diff --git a/src/app/utils.ts b/src/app/utils.ts
index 72b2bff4a6e7bc80967eb1764c41d88899719be6..e29a04f554154d4ba0fff16cb6f103edaecb4e19 100644
--- a/src/app/utils.ts
+++ b/src/app/utils.ts
@@ -119,3 +119,17 @@ export function removeDuplicateObjectsFromList(nodes: Node[], attribute: string)
   return filteredArray;
 }
 
+/**
+ * Method is use to download file.
+ * @param data - Array Buffer data
+ * @param type - type of the document.
+ */
+export function downLoadFile(data: any, type: string) {
+  let blob = new Blob([data], { type: type});
+  var a = document.createElement("a");
+  a.href = URL.createObjectURL(blob);
+  a.download = 'test.graphml';
+  // start download
+  a.click();
+}
+
diff --git a/src/stylesheets/styles.scss b/src/stylesheets/styles.scss
index 88f76a0e13fe5d5139e5a44d058298fb787e36b3..6a40599b3df5c14b56df45017d72d9fb3b265849 100644
--- a/src/stylesheets/styles.scss
+++ b/src/stylesheets/styles.scss
@@ -226,7 +226,7 @@
   }
 
   .footer-buttons {
-    margin-left: 20px;
+    margin-left: 10px;
     margin-right: 10px;
   }