如何使用ajax调用+ javascript将数据从数据库导出到excel

时间:2014-01-17 12:05:35

标签: javascript ajax excel sapui5

我使用sapui5 _javascript使用NDWS创建应用程序。我在视图中有一个表,它有一些数据(数据与服务器上的数据库同步)。我想从表中检索数据并导出到excel中(因此请获取单独的Excel文档)。这是我的触发器:

var oExportToExcelButton = new sap.ui.commons.Button( {
            text : "Export to Excel",
            width : '120px',
            style : sap.ui.commons.ButtonStyle.Emph,
            press : function() {

                var jsonDataObject = oController.model.getProperty("/matreqs");
                var taskIdFromView = sap.ui.getCore().byId("taskId").getValue();
                var jsonData = JSON.stringify(jsonDataObject);

                $.ajax("api/wpi/processrequest/getexcelexportfile?taskId="
                    + taskIdFromView, {
                    context : this,
                    type : "POST",
                    processData : false,
                    contentType : "application/json",
                    data : jsonData,
                    error : function(request, status, error) {
                        console.log(error);
                    },
                    success : function(data) {
                        oController.getRequestParameterValue();
                        console.log(data);
                        top.close();
                    }
                });
            }
        });

getRequestParameterValue()是控制器中的一个函数:

getRequestParameterValue: function(name) {
        var half = location.search.split("&" + name + "=")[1];

        if (!half) half = location.search.split("?" + name + "=")[1];

        return half ? decodeURIComponent(half.split("&")[0]) : null;
    })

我对编程很新,所以如果我的解释不是很清楚,我很抱歉。欢迎任何帮助!

1 个答案:

答案 0 :(得分:2)

由于您已经可以使用客户端上的oController.model .getProperty("/matreqs");访问按钮按下事件中的数据,因此您应该能够将数据发送到服务器端服务(例如Java Servlet)。这应该关心将数据转换为有效的Excel文件。

您可以使用Apache POI。这对我来说很好。

如果您需要更多信息,请告诉我。