知识分享 - 生成文件供用户下载
金蝶云社区-JohnnyDing
JohnnyDing
1人赞赏了该文章 2,623次浏览 未经作者许可,禁止转载编辑于2016年12月27日 11:25:51

背景说明

需要把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
{
///


/// 导出Excel文件,供用户下载
///

/// 包含了需要导出的数据
/// 生成的文件名
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();
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);
}
}
}