【已解决】普通动态表单选择读取excel文件
金蝶云社区-王兴旺
王兴旺
0人赞赏了该文章 2,713次浏览 未经作者许可,禁止转载编辑于2015年12月09日 10:59:44

业务需求场景:
在作物料导入插件时,来源数据可以是PDM数据源,现在想实现excel数据源。实现期望:希望在主菜单栏增加按钮【从文件导入】,点击后打开文件选择对话框,选择Excel文件后读取excel数据,并根据业务规则,生成创建物料所必须的信息,保存后实现物料导入。
需要求助问题:
1、文件选择我想使用表单导入那种选择文件的模式,不想使用BOS通用控件【文件上传】控件。如何实现?
2、业务代码实现我在网上找到以下帖子,请帮助看下方向对不对:
2.1、帖子《关于文件上传控件》这个貌似使用【文件上传】控件的,我那个需要不知道使用什么控件,主要实现代码:[code] public override void CustomEvents(CustomEventsArgs e)
{
if (e.Key.ToUpper() == "FFileUpdate".ToUpper())
{
//触发事件是上传文件有变化
if (e.EventName.ToUpper() == "FILECHANGED")
{
JSONObject jSONObject = KDObjectConverter.DeserializeObject(e.EventArgs);
if (jSONObject != null)
{
JSONArray jSONArray = new JSONArray(jSONObject["NewValue"].ToString());
if (jSONArray.Count > 0)
{
//获取上传的文件名
string text = (jSONArray[0] as Dictionary)["ServerFileName"].ToString();
//文件上传到服务端的临时目录
string directory = "FileUpLoadServices\\UploadFiles";
//文件的完整路径
string fileFullPath = PathUtils.GetPhysicalPath(directory, text);
}
}
}
}
base.CustomEvents(e);
}[/code] 2、帖子《关于单据体引入功能》,主要实现代码:[code]using (Kingdee.BOS.ServiceHelper.Excel.ExcelOperation excelOperation = new ExcelOperation(this.View))
{
DataSet dataSet = excelOperation.ReadFromFile(this.filePath, 2, 0);
foreach (System.Data.DataTable dt in dataSet.Tables) //遍历所有的datatable
{
foreach (DataRow dr in dt.Rows)
{ ///遍历所有的行
foreach (DataColumn dc in dt.Columns)
{
var s = dr[dc];
}
}
}
}[/code]