【知识分享】生成文件供用户下载
金蝶云社区-_哇哈哈
_哇哈哈
12人赞赏了该文章 1849次浏览 未经作者许可,禁止转载编辑于2018年07月20日 08:58:06

背景说明

需要把K/3 Cloud中的数据,进行打包,生成文件,供用户下载。

本帖介绍如何把DataSet生成为Excel文件,供用户下载。
不涉及如何对数据进行打包;
不涉及如何生成其他格式文件。


示例代码

//*************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.ComponentModel;
using Kingdee.BOS;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.ServiceHelper.Excel;


namespace JDSample.FormPlugIn.Bill
{
    [Description("把DataSet数据,导出为Excel文件下载")]
    public class S161227DownloadEdit : AbstractBillPlugIn
    {
        /// <summary>
        /// 导出Excel文件,供用户下载
        /// </summary>
        /// <param name="dt">包含了需要导出的数据</param>
        /// <param name="fileName">生成的文件名</param>
        private void Download(DataSet dt, string fileName)
        {
            // 在临时文件目录,生成一个完整的文件名: C:\Program Files\Kingdee\K3Cloud\WebSite\...\JD.xls
            string filePath = PathUtils.GetPhysicalPath(KeyConst.TEMPFILEPATH, fileName);
            // 生成一个供用户下载文件的url地址: http:\\localhost\K3Cloud\...\JD.xls
            string fileUrl = PathUtils.GetServerPath(KeyConst.TEMPFILEPATH, fileName);

            using(ExcelOperation excelHelper = new ExcelOperation(this.View))
            {
                excelHelper.BeginExport();

                //dt为导出数据
                excelHelper.ExportToFile(dt);
                excelHelper.EndExport(filePath, SaveFileType.XLS);
            }


            // 打开文件下载界面
            DynamicFormShowParameter showParameter = new DynamicFormShowParameter();
            showParameter.FormId = "BOS_FileDownload";
            showParameter.OpenStyle.ShowType = ShowType.Modal;
            showParameter.CustomParams.Add("url", fileUrl);


            this.View.ShowForm(showParameter);
        }
    }
}


赞 12