Пример #1
0
        protected override void Execute(NativeActivityContext context)
        {
            try
            {
                Thread.Sleep(DelayBefore.Get(context));
                string filePath = PathUrl.Get(context);

                excelApp               = new Excel::Application();
                excelApp.Visible       = IsVisible;
                excelApp.DisplayAlerts = false;

                if (_NewDoc == true)
                {
                    excelApp.Workbooks.Add(true);
                }
                else
                {
                    if (!File.Exists(filePath))
                    {
                        // 文件不存在,请检查路径有效性
                        SharedObject.Instance.Output(SharedObject.enOutputType.Error, Localize.LocalizedResources.GetString("xFileNotExist"));
                        new CommonVariable().realaseProcessExit(excelApp);
                        return;
                    }
                    else
                    {
                        //可用Open或Add函数打开文件,但对于执行VBA,Add无保存权限
                        excelApp.Workbooks.Open(filePath);
                    }
                }

                context.ScheduleAction(Body, excelApp, OnCompleted, OnFaulted);
            }
            catch (Exception e)
            {
                // EXCEL执行过程出错
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, Localize.LocalizedResources.GetString("xExcelExecError"), e.Message);
                new CommonVariable().realaseProcessExit(excelApp);
            }
        }
Пример #2
0
        protected override void Execute(NativeActivityContext context)
        {
            app = new Word::Application();
            try
            {
                string filePath = PathUrl.Get(context);

                Word::Documents docs = app.Documents;
                app.Visible       = IsVisible;
                app.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

                if (NewDoc)
                {
                    docs.Add();
                }
                else
                {
                    if (!File.Exists(PathUrl.Get(context)))
                    {
                        // 文件不存在,请检查路径有效性
                        SharedObject.Instance.Output(SharedObject.enOutputType.Error, Localize.LocalizedResources.GetString("xFileNotExist"));
                        CommonVariable.realaseProcessExit(app);
                    }
                    else
                    {
                        docs.Open(filePath);
                    }
                }
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "Word执行过程出错", e.Message);
                CommonVariable.realaseProcessExit(app);
            }
            if (Body != null)
            {
                context.ScheduleAction(Body, app, OnCompleted, OnFaulted);
            }
        }
Пример #3
0
        protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)
        {
            PropertyDescriptor property = context.DataContext.GetProperties()[WordCreate.GetWordAppTag];
            Application        wordApp  = property.GetValue(context.DataContext) as Application;

            try
            {
                string pathUrl = PathUrl.Get(context);
                if (!File.Exists(pathUrl))
                {
                    SharedObject.Instance.Output(SharedObject.enOutputType.Error, "文件不存在,请检查路径有效性!", pathUrl);
                    CommonVariable.realaseProcessExit(wordApp);
                }
                wordApp.Selection.InsertFile(pathUrl);
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "Word执行过程出错", e.Message);
                CommonVariable.realaseProcessExit(wordApp);
            }
            m_Delegate = new runDelegate(Run);
            return(m_Delegate.BeginInvoke(callback, state));
        }
Пример #4
0
        protected override void Execute(CodeActivityContext context)
        {
            Encoding csvEncoding;
            string   filePath     = PathUrl.Get(context);
            string   encodingType = EncodingType.Get(context);
            string   delimiter    = ",";

            if (Delimiter == DelimiterEnums.Caret插入符号)
            {
                delimiter = "^";
            }
            else if (Delimiter == DelimiterEnums.Comma逗号)
            {
                delimiter = ",";
            }
            else if (Delimiter == DelimiterEnums.Pipe竖线)
            {
                delimiter = "|";
            }
            else if (Delimiter == DelimiterEnums.Semicolon分号)
            {
                delimiter = ";";
            }
            else if (Delimiter == DelimiterEnums.Tab制表符)
            {
                delimiter = "	";
            }

            if (!File.Exists(filePath))
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "文件不存在,请检查路径有效性", filePath);
                return;
            }

            /*取字符编码 如果为空则取文件编码 异常则取系统默认编码*/
            try
            {
                if (encodingType == null)
                {
                    csvEncoding = CSVEncoding.GetEncodingType(filePath);
                }
                else
                {
                    csvEncoding = Encoding.GetEncoding(encodingType);
                }
            }
            catch (Exception)
            {
                csvEncoding = System.Text.Encoding.Default;
            }

            /*设置DataTable*/
            try
            {
                DataTable dataTable = ReadCSVFile(filePath, csvEncoding, delimiter);
                OutDataTable.Set(context, dataTable);
                foreach (DataRow dr in dataTable.Rows)
                {
                    for (int i = 0; i < dataTable.Columns.Count; i++)
                    {
                        System.Diagnostics.Debug.WriteLine("dt : " + dr[i]);
                    }
                }
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "EXCEL执行过程出错", e.Message);
                throw e;
            }
        }
Пример #5
0
        protected override void Execute(CodeActivityContext context)
        {
            Encoding csvEncoding;
            string   filePath     = PathUrl.Get(context);
            string   encodingType = EncodingType.Get(context);
            string   delimiter    = ",";

            if (Delimiter == DelimiterEnums.Caret插入符号)
            {
                delimiter = "^";
            }
            else if (Delimiter == DelimiterEnums.Comma逗号)
            {
                delimiter = ",";
            }
            else if (Delimiter == DelimiterEnums.Pipe竖线)
            {
                delimiter = "|";
            }
            else if (Delimiter == DelimiterEnums.Semicolon分号)
            {
                delimiter = ";";
            }
            else if (Delimiter == DelimiterEnums.Tab制表符)
            {
                delimiter = "	";
            }

            if (!File.Exists(filePath))
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "文件不存在,请检查路径有效性", filePath);
                return;
            }

            /*取字符编码 如果为空则取文件编码 异常则取系统默认编码*/
            try
            {
                if (encodingType == null)
                {
                    csvEncoding = CSVEncoding.GetEncodingType(filePath);
                }
                else
                {
                    csvEncoding = Encoding.GetEncoding(encodingType);
                }
            }
            catch (Exception)
            {
                csvEncoding = System.Text.Encoding.Default;
            }

            /*将DataTable内容写入CSV文件*/
            try
            {
                DataTable inDataTable = InDataTable.Get(context);
                WriteCSVFile(inDataTable, filePath, csvEncoding, delimiter);
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "EXCEL执行过程出错", e.Message);
                throw e;
            }
        }
Пример #6
0
        protected override void Execute(CodeActivityContext context)
        {
            try
            {
                PdfReader pdfReader;
                string    pathUrl = PathUrl.Get(context);
                string    range   = Range.Get(context);

                if (!File.Exists(pathUrl))
                {
                    SharedObject.Instance.Output(SharedObject.enOutputType.Error, "PDF文件不存在,请检查路径有效性", pathUrl);
                    return;
                }
                if (PassWord.Expression != null)
                {
                    byte[] byteArray = System.Text.Encoding.Default.GetBytes(PassWord.Get(context));
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pathUrl, byteArray);
                }
                else
                {
                    pdfReader = new iTextSharp.text.pdf.PdfReader(pathUrl);
                }

                string pdfText = null;
                if (range.Contains(","))
                {
                    string[] rangeArray1 = range.Split(',');
                    foreach (string buff in rangeArray1)
                    {
                        string pdfPara = null;
                        if (buff.Contains("-"))
                        {
                            string[] rangeArray = buff.Split('-');
                            string   range1     = rangeArray[0];
                            string   range2     = rangeArray[1];
                            pdfPara = getContent(pdfReader, range1, range2);
                        }
                        else
                        {
                            pdfPara = getContent(pdfReader, buff);
                        }
                        pdfText += pdfPara;
                    }
                }
                else if (range.Contains("-"))
                {
                    string[] rangeArray = range.Split('-');
                    string   range1     = rangeArray[0];
                    string   range2     = rangeArray[1];
                    pdfText = getContent(pdfReader, range1, range2);
                }
                else
                {
                    pdfText = getContent(pdfReader, range);
                }
                context.SetValue(PDFText, pdfText);
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "PDF读取文本失败", e);
                throw e;
            }
        }