Example #1
0
        public static string fUtilityPutDataTable(string handle, object[,] data)
        {
            PersistentObjects.AssertReservedWordsTableName(handle);

            PersistentObjects.AddToMap(handle, ExcelFriendlyConversion.ConvertObjectArrayToDataTable(handle, data), "DATATABLE");
            return(handle);
        }
Example #2
0
        public static object[,] fUtilityDataTableSortAndGet(string handle, object[] headers, object SortAscending, object noHeadersInput)
        {
            var table  = PersistentObjects.GetFromMap <DataTable>(handle, "DATATABLE");
            var output = ExcelFriendlyConversion.ConvertDataTableToObjectArray(table);

            return(fUtilityTableSortByHeader(output, headers, SortAscending, noHeadersInput));
        }
Example #3
0
        public static object[,] fUtilityArrayIgnoreNA(object[] array)
        {
            List <object> output = new List <object>();

            foreach (object entry in array)
            {
                if (entry is ExcelDna.Integration.ExcelError == false)
                {
                    output.Add(entry);
                }
            }

            return(ExcelFriendlyConversion.ArrayToVerticalObject(output.ToArray()));
        }
Example #4
0
        public static object[,] fUtilityGetDataTable(string handle, object noHeadersInput)
        {
            bool noHeaders = Optional.Check(noHeadersInput, false);

            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return(new object[0, 0]);
            }
            else
            {
                var output = PersistentObjects.GetFromMap <DataTable>(handle, "DATATABLE");
                return(ExcelFriendlyConversion.ConvertDataTableToObjectArray(output, noHeaders));
            }
        }
Example #5
0
        public static object[,] fUtilityTableSortByHeader(object[,] table, object[] headers, object SortAscending, object noHeadersInput)
        {
            bool ascending = Optional.Check(SortAscending, true);
            bool noHeaders = Optional.Check(noHeadersInput, false);

            var dataTable = ExcelFriendlyConversion.ConvertObjectArrayToDataTable("TEMPTABLE", table);
            var header    = "";

            for (int i = 0; i < headers.Length - 1; i++)
            {
                header = headers[i].ToString() + ", " + header;
            }

            header = header + headers[headers.Length - 1];

            var direction = (ascending) ? "ASC" : "DESC";

            dataTable.DefaultView.Sort = header + " " + direction;

            return(ExcelFriendlyConversion.ConvertDataTableToObjectArray(dataTable.DefaultView.ToTable()));
        }
Example #6
0
        public static object[,] fUtilityQueryDataTable(string sqlStringOrHandle, object noHeadersInput)
        {
            string sql = ObjectInfo.DetermineIfSqlHandleOrSqlQuery(sqlStringOrHandle);

            object[,] output;
            bool noHeaders   = Optional.Check(noHeadersInput, false);
            var  tableHandle = ParsingFunctionality.GetTableNameFromSqlQuery(sql);

            if (PersistentObjects.ContainsKey(tableHandle, "DATATABLE") == false)
            {
                string errorMessage = "ERROR: DataTable + " + tableHandle + " does not exist in the object map.";
                output       = new object[1, 1];
                output[0, 0] = errorMessage;
                return(output);
            }
            else
            {
                var newTable = QueryCSV.QueryDataTable(sql, PersistentObjects.CsvPath);
                output = ExcelFriendlyConversion.ConvertDataTableToObjectArray(newTable, noHeaders);
                return(output);
            }
        }
Example #7
0
        static void TestSQLite()
        {
            var            table = CreateTestTable();
            SQLiteDatabase db    = new SQLiteDatabase("MYDB");

            db.CreateTable("MYTABLE", table);
            var table2 = db.InspectDatabase();
            var table3 = db.GetDataTable("MYTABLE");

            var obj    = CreateTestArray();
            var table4 = ExcelFriendlyConversion.ConvertObjectArrayToDataTable("MYTABLE4", obj);

            PrintTableInfoToConsole(table4);

            db.CreateTable("MYTABLE4", table4);
            var table5 = db.GetDataTable("MYTABLE4");

            PrintTableInfoToConsole(table5);


            Console.WriteLine("Database created ..");
        }
Example #8
0
        public static object[,] fUtilityGetIntersection(object[] array1, object[] array2)
        {
            var list1 = array1.ToList();
            var list2 = array2.ToList();

            var group1 =
                from n in list1
                group n by n
                into g
                select new { g.Key, count = g.Count() };

            var group2 =
                from n in list2
                group n by n
                into g
                select new { g.Key, count = g.Count() };

            var joined =
                from b in group2
                join a in group1 on b.Key equals a.Key
                select new { b.Key, Count = Math.Min(b.count, a.count) };

            return(ExcelFriendlyConversion.ArrayToVerticalObject(joined.SelectMany(a => Enumerable.Repeat(a.Key, a.Count)).ToArray()));
        }
Example #9
0
        public static object[,] fUtilityGetDistinctValues(object[] array)
        {
            var list = array.ToList <object>();

            return(ExcelFriendlyConversion.ArrayToVerticalObject(list.Distinct().ToArray()));
        }