背景说明
需要把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);
}
}
}
推荐阅读