问题
I have a server that is returning a csv file. I need to allow this file to be downloaded to the client side using sapui5. I am fairly new to it so I am having trouble handling the response. Any ideas would be much appreciated. Thanks in advance
回答1:
You can check sap.ui.core.util.File save method. Working example below.
sap.ui.define([
"sap/ui/core/util/File"])
sap.ui.getCore().attachInit(function() {
"use strict";
sap.ui.controller("MyController", {
onInit: function() {
}
});
sap.ui.xmlview({
viewContent: jQuery("#myView").html()
}).placeAt("content");
});
doDownload = function(oEvent) {
sap.ui.core.util.File.save("csv content", "myfile", "csv", "text/csv");
}
<!DOCTYPE html>
<title>SAPUI5</title>
<script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m" data-sap-ui-bindingSyntax="complex" data-sap-ui-compatVersion="edge" data-sap-ui-preload="async"></script>
<script id="myView" type="ui5/xmlview">
<mvc:View controllerName="MyController" xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"
xmlns:layout="sap.ui.commons.layout">
<layout:MatrixLayout>
<layout:rows>
<layout:MatrixLayoutRow>
<layout:MatrixLayoutCell padding="None">
<Button text="Download CSV" press="doDownload" />
</layout:MatrixLayoutCell>
</layout:MatrixLayoutRow>
</layout:rows>
</layout:MatrixLayout>
</mvc:View>
</script>
<body class="sapUiBody">
<div id="content"></div>
</body>
来源:https://stackoverflow.com/questions/58659402/displaying-csv-file-from-server-in-sapui5