Exemplo n.º 1
0
        public static void test6()
        {
            try
            {
                ScriptEngine engine = Python.CreateEngine();
                var          paths  = engine.GetSearchPaths();
                paths.Add(@"D:\Program Files (x86)\IronPython 2.7\Lib");
                engine.SetSearchPaths(paths);
                ScriptScope scope = engine.CreateScope();

                ScriptSource script = engine.CreateScriptSourceFromFile(@"main3.py");
                var          result = script.Execute(scope);

                excel_cell_data cell_Data = new excel_cell_data();
                cell_Data.Int32Value = 200;
                cell_Data.Int64Value = 300;

                List <string> list = new List <string>();
                list.Add("1111");
                list.Add("2222");
                string[] list2 = { "aaaa", "bbbb" };
                var      func  = scope.GetVariable <Func <object, object> >("Test2");
                IronPython.Runtime.Bytes data = new IronPython.Runtime.Bytes(cell_Data.ToByteArray());
                func(data);


                var func2 = scope.GetVariable <Func <object> >("Test3");
                func2();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Exemplo n.º 2
0
        public bool AddLineData(int excelLine, List <string> dataList)
        {
            if (dataList.Count <= 0)
            {
                Console.WriteLine(msgName + "数据列为空");
                return(false);
            }
            if (!int.TryParse(dataList[0], out int index))
            {
                ConsoleExcelLine(msgName, excelLine, 0, "索引解析错误");
                return(false);
            }
            if (table_data.Table.TryGetValue(index, out excel_line_data line_data))
            {
                ConsoleExcelLine(msgName, excelLine, -1, "存在重复的索引:index=" + index);
                return(false);
            }

            for (int i = 0; i < dataList.Count; ++i)
            {
                if (!index2Type.TryGetValue(i, out DATA_TYPE dataType))
                {
                    ConsoleExcelLine(msgName, excelLine, i, "找不到数据类型:index=" + index);
                    return(false);
                }
                var cell_data = new excel_cell_data();
                line_data.CellData.Add(cell_data);
                var dataDesc = dataList[i];

                try
                {
                    switch (dataType)
                    {
                    case DATA_TYPE.INT:
                    {
                        cell_data.DataType   = excel_cell_data.Types.DATA_TYPE.Int32;
                        cell_data.Int32Value = int.Parse(dataDesc);
                    }
                    break;

                    case DATA_TYPE.LONG:
                    {
                        cell_data.DataType   = excel_cell_data.Types.DATA_TYPE.Int64;
                        cell_data.Int64Value = long.Parse(dataDesc);
                    }
                    break;

                    case DATA_TYPE.STRING:
                    {
                        cell_data.DataType   = excel_cell_data.Types.DATA_TYPE.String;
                        cell_data.BytesValue = ByteString.CopyFromUtf8(dataDesc);
                    }
                    break;

                    case DATA_TYPE.FLOAT:
                    {
                        cell_data.DataType   = excel_cell_data.Types.DATA_TYPE.Float;
                        cell_data.FloatValue = float.Parse(dataDesc);
                    }
                    break;

                    case DATA_TYPE.DOUBLE:
                    {
                        cell_data.DataType    = excel_cell_data.Types.DATA_TYPE.Double;
                        cell_data.DoubleValue = double.Parse(dataDesc);
                    }
                    break;

                    default:
                        ConsoleExcelLine(msgName, excelLine, i, "错误的数据类型:type=" + dataType);
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    ConsoleExcelLine(msgName, excelLine, i, "解析数据出错:error=" + e.Message);
                    return(false);
                }
            }

            return(true);
        }