Пример #1
0
        protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            // Inputs
            var excelFilePath  = ExcelFilePath.Get(context);
            var sapProcessName = SAPProcessName.Get(context);
            var xmlFolderPath  = XMLFolderPath.Get(context);


            var         xmlFilePath = string.Empty;
            XmlDocument doc         = null;

            ExcelToXMLConverter excelToXMLConverter = new ExcelToXMLConverter();

            if (!string.IsNullOrEmpty(xmlFolderPath))
            {
                xmlFilePath = excelToXMLConverter.ConvertExcelToXMLFile(excelFilePath, sapProcessName, xmlFolderPath);
            }
            else
            {
                doc = excelToXMLConverter.ConvertExcelToXMLDocument(excelFilePath, sapProcessName);
            }

            // Outputs
            return((ctx) => {
                XMLDocument.Set(ctx, doc);
                XMLPath.Set(ctx, xmlFilePath);
            });
        }
Пример #2
0
        protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            // Inputs
            var excelFilePath  = ExcelFilePath.Get(context);
            var sapProcessName = SAPProcessName.Get(context);
            var xmlFolderPath  = XMLFolderPath.Get(context);

            ///////////////////////////
            // Add execution logic HERE
            ///////////////////////////

            // Outputs
            return((ctx) => {
                XMLDocument.Set(ctx, null);
                XMLPath.Set(ctx, null);
            });
        }
Пример #3
0
        protected override void Execute(NativeActivityContext context)
        {
            try
            {
                filepath = ExcelFilePath.Get(context);
                //_Application excel = new ApplicationClass();
                ExcelHelper.Shared.Close_OpenedFile(filepath);

                excel.DisplayAlerts = false;

                wb = excel.Workbooks._Open(@filepath, False, False, Missing.Value, Missing.Value, False, False, Missing.Value, Missing.Value, False, Missing.Value, Missing.Value, True);

                String sheet = SheetName.Get(context);
                if (sheet != null)
                {
                    ws = (_Worksheet)wb.Worksheets[sheet];
                }
                else
                {
                    ws = (_Worksheet)wb.Worksheets[1];
                }

                string temp = Range.Get(context);
                char[] a    = { ':', ';' };

                if (temp != null)
                {
                    string[] temp2 = temp.Split(a[0]);
                    if (temp2.Length == 1)
                    {
                        from = temp2[0];
                        Range last = ws.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
                        rng = ws.get_Range(from, last);
                    }
                    if (temp2.Length == 2)
                    {
                        from = temp2[0];
                        to   = temp2[1];
                        rng  = ws.get_Range(from, to);
                    }
                }
                else
                {
                    Range last = ws.UsedRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
                    from = "A1";
                    rng  = ws.get_Range("A1", last);
                }

                Range  findRng = rng.Find(Value.Get(context), Missing.Value, XlFindLookIn.xlValues, Missing.Value, Missing.Value, XlSearchDirection.xlNext, False, False, Missing.Value);
                string Address = RemoveSpecialCharacters(findRng.Address);
                Result.Set(context, Address);

                //Log.Logger.LogData("\n## The Address is  " + Address, LogLevel.Info);
                string RemoveSpecialCharacters(string str)
                {
                    return(Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled));
                }
                wb.Save();
            }
            catch (Exception ex)
            {
                Log.Logger.LogData("Exception in LookUpRange:  " + ex.Message, LogLevel.Error);
                if (!ContinueOnError)
                {
                    context.Abort();
                }
            }
            finally
            {
                wb.Close();
                excel.Quit();

                Marshal.ReleaseComObject(ws);
                Marshal.ReleaseComObject(wb);
                Marshal.ReleaseComObject(excel);
            }
        }