public override void RunCommand(object sender)
        {
            DatasetCommands dataSetCommand = new DatasetCommands();
            DataTable       requiredData   = dataSetCommand.CreateDataTable(v_ConnectionString.ConvertToUserVariable(sender), v_UserQuery);

            var engine = (Core.Automation.Engine.AutomationEngineInstance)sender;

            Script.ScriptVariable newDataset = new Script.ScriptVariable
            {
                VariableName  = v_DataSetName,
                VariableValue = requiredData
            };

            engine.VariableList.Add(newDataset);
        }
        public override void RunCommand(object sender)
        {
            DatasetCommands dataSetCommand = new DatasetCommands();
            DataTable       requiredData   = dataSetCommand.CreateDataTable(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + v_FilePath + @";Extended Properties=""Excel 12.0;HDR=No;IMEX=1""", "Select * From [" + v_SheetName + "$]");

            var engine = (Core.Automation.Engine.AutomationEngineInstance)sender;

            Script.ScriptVariable newDataset = new Script.ScriptVariable
            {
                VariableName  = v_DataSetName,
                VariableValue = requiredData
            };

            engine.VariableList.Add(newDataset);
        }
示例#3
0
        public override void RunCommand(object sender)
        {
            var engine    = (Core.Automation.Engine.AutomationEngineInstance)sender;
            var vInstance = DateTime.Now.ToString();
            var vFilePath = v_FilePath.ConvertToUserVariable(sender);

            var newExcelSession = new Microsoft.Office.Interop.Excel.Application
            {
                Visible = false
            };

            engine.AddAppInstance(vInstance, newExcelSession);


            var excelObject = engine.GetAppInstance(vInstance);

            Microsoft.Office.Interop.Excel.Application excelInstance = (Microsoft.Office.Interop.Excel.Application)excelObject;

            //Query required from workbook using OLEDB
            DatasetCommands dataSetCommand = new DatasetCommands();
            DataTable       requiredData   = dataSetCommand.CreateDataTable(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + v_FilePath + @";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""", "Select " + v_KeyColumn + "," + v_ValueColumn + " From [" + v_SheetName + "$]");

            var dictlist = requiredData.AsEnumerable().Select(x => new
            {
                keys   = (string)x[v_KeyColumn],
                values = (string)x[v_ValueColumn]
            }).ToList();
            Dictionary <string, string> outputDictionary = new Dictionary <string, string>();

            foreach (var dict in dictlist)
            {
                outputDictionary.Add(dict.keys, dict.values);
            }


            Script.ScriptVariable newDictionary = new Script.ScriptVariable
            {
                VariableName  = v_DictionaryName,
                VariableValue = outputDictionary
            };
            //close excel
            excelInstance.Quit();

            //remove instance
            engine.RemoveAppInstance(vInstance);

            engine.VariableList.Add(newDictionary);
        }