Пример #1
0
        public ActionResult Calculate()
        {
            string result = string.Empty;

            try
            {
                // 获取计算参数
                var quantity = HttpContextHelper.GetCurrent().GetHttpRequestItem("quantity");
                var level    = HttpContextHelper.GetCurrent().GetHttpRequestItem("level");
                var solution = HttpContextHelper.GetCurrent().GetHttpRequestItem("solution");
                var quality  = HttpContextHelper.GetCurrent().GetHttpRequestItem("quality");

                // 定义返回对象
                object objRtn = new object();

                // 获取源文件路径。 TBD: 变成系统资源。
                string filePath = Server.MapPath("~/Resources/抽样方案.xlsm");

                ExcelMacroUtil helper = new ExcelMacroUtil();

                // 根据用户页面输入,调用Excel的宏,设置输入字段单元格
                helper.RunExcelMacro(filePath, "SetValue", new object[] { quantity, level, solution, quality }, out objRtn, false);

                // 调用计算的宏,拿到返回值
                helper.RunExcelMacro(filePath, "GetResult", new object[] { }, out objRtn, false);

                result = (string)objRtn;
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }

            return(Json(result));
        }