C6表单Excel文件数据导入方法.pptx
,C6表单Excel文件导入方法,www.jinher.com,C6产品部,JavaScript前端导入,导入功能兼容性,导入演示,3,代码实现说明,4,引用JS库:xlsx.full.min.jsGitHub:https:/github.com/sheetjs/js-xlsx,C6中表单引入:1.将xlsx.full.min.js放入【C6JHSoft.Web.Modulefceformjs】文件夹下;2.打开【C6JHSoft.Web.Modulefceformjsfcpub.js 】修改对应位置,如下图:这样就把xlsx.full.min.js引入到表单中(这样操作后所有的表单都可以调用);,代码实现说明,www.islide.cc,5,C6中表单调用(采用自定义函数进行调用):,代码实现说明,www.islide.cc,6,C6中表单调用(函数ImportDataForIE):,代码实现说明,7,C6中表单调用(函数ImportDataForChrome):,代码示例(可拷贝),8,function ImportExcel() var obj = document.getElementById('excelUpload'); /excelUpload为上传控件的ID if (!obj.files) /判断有没有选择文件 alert("请选择要导入的文件!"); return; var url = obj.value; var suffix = url.substring(url.lastIndexOf(".") + 1, url.length); if (!(suffix = "xls" | suffix = "xlsx") /判断是否上传的文件为EXCEL文件 return alert("选择的文件类型不正确!"); if (!window.ActiveXObject | "ActiveXObject" in window) /IE浏览器判断 ImportDataForIE(url);/IE浏览器调用的导入方法 else /非IE下浏览器调用的导入方法,下面的代码不用修改具体修改是的函数ImportDataForChrome var f = obj.files0; var reader = new FileReader(); reader.onload = function (e) var data = e.target.result; wb = XLSX.read(data, type: 'binary' ); var excelJson = XLSX.utils.sheet_to_json(wb.Sheetswb.SheetNames0); ImportDataForChrome(excelJson); ; reader.readAsBinaryString(f); ,代码示例(可拷贝),9,function ImportDataForIE(obj) DsSub1.Delete(); var filePath = obj; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try var jtgj = "" var je = "" var djzs = "" var ccsy = "" var cfrq = "" var InvID = "" var i = 2; while (jtgj != null) DsSub1.Append(); jtgj = oSheet.Cells(i, 1).value; je = oSheet.Cells(i, 2).value; djzs = oSheet.Cells(i, 3).value; ccsy = oSheet.Cells(i, 4).value; cfrq = oSheet.Cells(i, 5).value; DsSub1.Fields.Field'jtgj'.Value = (jtgj) ? jtgj : "" DsSub1.Fields.Field'je'.Value = (je) ? je : "" DsSub1.Fields.Field'djzs'.Value = (djzs) ? djzs : "" DsSub1.Fields.Field'ccsy'.Value = (ccsy) ? ccsy : "" DsSub1.Fields.Field'cfrq'.Value = (cfrq) ? cfrq : "" DsSub1.Fields.Field'InvID'.Value = (InvID) ? InvID : "" DsSub1.bEdit = true; DsSub1.Update('不检查'); DsToGrid(DsSub_Grid1, '否'); i+; DsSub1.Delete(); alert("导入完成!"); catch (e) alert("导入失败!"); oXL.Quit();,代码示例(可拷贝),10,function ImportDataForChrome(strJson) DsSub1.Delete(); try if (strJson.length > 0) for (var i = 0; i < strJson.length; i+) DsSub1.Append(); DsSub1.Fields.Field'jtgj'.Value = strJsoni.item1;/DsSub1.Fields.Field'jtgj'.Value = strJsoni"item1" DsSub1.Fields.Field'je'.Value = strJsoni.item2; DsSub1.Fields.Field'djzs'.Value = strJsoni.item3; DsSub1.Fields.Field'ccsy'.Value = strJsoni.item4; DsSub1.Fields.Field'cfrq'.Value = strJsoni.item5; DsSub1.Fields.Field'InvID'.Value = strJsoni.item6; DsSub1.bEdit = true; DsSub1.Update('不检查'); DsToGrid(DsSub_Grid1, '否'); alert("导入成功!"); else alert("未发现可导入的数据!"); catch (e) alert("导入失败!"); ,导入Excel模板示例,11,谢谢!敬请期待C6产品的下一次更新,周烨枫,www.jinher.com,