Exemple #1
0
        public ЭкраннаяФорма ИмпортироватьЭкраннуюФорму(string Файл)
        {
            ЭкраннаяФорма форма = new ЭкраннаяФорма();

            this.sheetFamilyID = GridFormulaEngine.CreateSheetFamilyID();
            ExcelEngine  engine   = new ExcelEngine();
            IApplication excel    = engine.Excel;
            IWorkbook    workbook = engine.Excel.Workbooks.Open(Файл);

            foreach (IWorksheet worksheet in workbook.Worksheets)
            {
                if (worksheet.Name.Trim().ToLower() == "code")
                {
                    continue;
                }
                if (worksheet.Name.Trim().ToLower() == "шапка")
                {
                    ШапкаЭкраннойФормы формы = new ШапкаЭкраннойФормы();
                    GridFormulaEngine.RegisterGridAsSheet("sys_шапка", формы.Представление, this.sheetFamilyID);
                    base.ExcelToGrid(worksheet, формы.Представление);
                    формы.УстановитьСтилевыеНастройкиТаблицы();
                    this.ОбработатьЯчейкиТаблицы(формы);
                    форма.Шапка = формы;
                }
                else
                {
                    this.ПолучитьТаблицыФормы(worksheet, форма);
                }
            }
            return(форма);
        }
Exemple #2
0
        private List <ТаблицаОтчетнойФормы> ПолучитьТаблицыФормы(IWorksheet worksheet, ЭкраннаяФорма Форма)
        {
            ТаблицаОтчетнойФормы формы = new ТаблицаОтчетнойФормы();

            GridFormulaEngine.RegisterGridAsSheet("sys_общаяТаблица", формы.Представление, this.sheetFamilyID);
            base.ExcelToGrid(worksheet, формы.Представление);
            bool   flag   = false;
            int    top    = -1;
            string str    = string.Empty;
            int    length = worksheet.Rows.Length;
            int    right  = worksheet.Columns.Length;
            bool   flag2  = true;
            List <ТаблицаОтчетнойФормы> list = new List <ТаблицаОтчетнойФормы>();

            for (int i = 1; i <= length; i++)
            {
                string text = worksheet[i, 1].Text;
                if (string.IsNullOrEmpty(text))
                {
                    if ((i == length) && (top != -1))
                    {
                        text = "#Конец_Закладки";
                    }
                    else
                    {
                        continue;
                    }
                }
                if (text.ToLower().StartsWith("#закладка"))
                {
                    flag = false;
                    top  = i;
                    str  = text;
                }
                else if (text.ToLower().StartsWith("#динамическаятаблица"))
                {
                    flag = true;
                    top  = i;
                    str  = text;
                }
                else if (text.ToLower().StartsWith("#конец_закладки") && (top != -1))
                {
                    GridRangeInfo           range = GridRangeInfo.Cells(top, 1, i, right);
                    GridStyleInfoStoreTable cells = формы.GetCells(range);
                    int rowCount = cells.RowCount;
                    int colCount = cells.ColCount;
                    ТаблицаОтчетнойФормы формы2 = new ТаблицаОтчетнойФормы();
                    формы2.RowCount = rowCount;
                    формы2.ColCount = colCount;
                    this.ИдентифицироватьЗакладу(str, формы2);
                    string str3 = str.Trim().ToLower();
                    if (flag2)
                    {
                        формы2.ИмяЛиста = worksheet.Name;
                    }
                    else
                    {
                        формы2.ИмяЛиста = формы2.КодТаблицы;
                    }
                    flag2 = false;
                    GridFormulaEngine.RegisterGridAsSheet(формы2.ИмяЛиста, формы2.Представление, this.sheetFamilyID);
                    GridRangeInfo info2 = GridRangeInfo.Cells(1, 1, rowCount, colCount);
                    формы2.SetCells(info2, cells);
                    for (int j = 0; j <= colCount; j++)
                    {
                        формы2.ColWidths[j] = формы.ColWidths[j];
                    }
                    foreach (GridRangeInfo info3 in формы.CoveredRanges.Ranges)
                    {
                        формы2.CoveredRanges.Add(GridRangeInfo.Cells((info3.Top - top) + 1, info3.Left, (info3.Bottom - top) + 1, info3.Right));
                    }
                    формы2.RowHeights.ResizeToFit(GridRangeInfo.Rows(0, rowCount));
                    формы2.RowHeights[0]        = 0;
                    формы2.RowHeights[1]        = 0;
                    формы2.RowHeights[rowCount] = 0;
                    if (!flag)
                    {
                        this.ПроанализироватьТаблицуНаПеременные(формы2);
                        this.ОбработатьЯчейкиТаблицы(формы2);
                        Форма.ДобавитьТаблицу(формы2);
                    }
                    else
                    {
                        string[] strArray = формы2.КодТаблицы.Split(new char[] { ',' });
                        bool     flag3    = str3.Contains("размещатьназакладке");
                        foreach (string str4 in strArray)
                        {
                            ДинамическаяТаблица таблица = new ДинамическаяТаблица();
                            таблица.ПостроитьТаблицуПоМодели(формы2);
                            таблица.КодТаблицы         = str4;
                            таблица.азмещатьНаЗакладке = flag3;
                            Форма.ДобавитьДинамическуюТаблицу(таблица);
                        }
                    }
                    top = -1;
                }
            }
            GridFormulaEngine.UnregisterGridAsSheet("sys_общаяТаблица", формы.Представление);
            return(list);
        }
Exemple #3
0
        private void Form1_Load(object sender, System.EventArgs e)
        {
            //helper class to mark headers/row on a the calculation sheet
            GridMarkHeadersHelper helper = new GridMarkHeadersHelper(this.gridCalculations);

            helper.RegisterGridForContextMenu(this.gridDisplay);

            this.helperList = new Hashtable();
            this.helperList.Add(this.gridCalculations, helper);

            //register grids for multisheeted use
            int sheetFamilyID = GridFormulaEngine.CreateSheetFamilyID();

            GridFormulaEngine.RegisterGridAsSheet("Display", this.gridDisplay.Model, sheetFamilyID);
            GridFormulaEngine.RegisterGridAsSheet("Calc", this.gridCalculations.Model, sheetFamilyID);

            SetUpDisplaySheet();

            SetUpCalcSheet();

            SetUpNamedRanges();

            //setup copying formulas
            GridFormulaEngine engine = ((GridFormulaCellModel)this.gridCalculations.CellModels["FormulaCell"]).Engine;

            engine.FormulaCopyFlags |= GridFormulaCopyFlags.ClipBoardFormula;

            //make sure calc grid has current cell
            this.tabBarPage2.ActiveControl = this.gridCalculations;
            this.gridCalculations.CurrentCell.MoveTo(1, 1);

            //bring up form on grid in first tab
            this.tabBarSplitterControl1.ActivePage = this.tabBarPage1;
            this.tabBarPage1.ActiveControl         = this.gridDisplay;
            this.gridDisplay.CurrentCell.MoveTo(5, 5);
            this.gridDisplay.Refresh();
            //subscribe to TabBar events to handle splitters generating new grids
            this.tabBarSplitterControl1.PaneCreated += new Syncfusion.Windows.Forms.SplitterPaneEventHandler(tabBar_PaneCreated);
            this.tabBarSplitterControl1.PaneClosing += new Syncfusion.Windows.Forms.SplitterPaneEventHandler(tabBar_PaneClosing);

            this.gridCalculations.Properties.GridLineColor = System.Drawing.Color.Silver;
            this.gridCalculations.DefaultGridBorderStyle   = GridBorderStyle.Solid;
            this.gridCalculations.ThemesEnabled            = true;
            this.Text = "Retirement Simulation Demo";
            this.gridCalculations.GridVisualStyles         = Syncfusion.Windows.Forms.GridVisualStyles.Metro;
            this.gridDisplay.GridVisualStyles              = Syncfusion.Windows.Forms.GridVisualStyles.Metro;
            this.gridDisplay.DefaultRowHeight              = (int)DpiAware.LogicalToDeviceUnits(25.0f);
            this.gridCalculations.DefaultColWidth          = (int)DpiAware.LogicalToDeviceUnits(70.0f);
            this.gridCalculations.DefaultGridBorderStyle   = GridBorderStyle.Solid;
            this.gridCalculations.ThemesEnabled            = true;
            this.gridCalculations.MarkColHeader            = true;
            this.gridCalculations.MarkRowHeader            = true;
            this.gridCalculations.AlphaBlendSelectionColor = Color.Orange;
            this.gridCalculations.Properties.GridLineColor = Color.FromArgb(208, 215, 229);

            this.gridDisplay.GridVisualStyles = Syncfusion.Windows.Forms.GridVisualStyles.Metro;
            this.StartPosition = FormStartPosition.CenterScreen;
            this.tabBarSplitterControl1.ThemesEnabled = true;
            this.gridDisplay.PrepareViewStyleInfo    += new GridPrepareViewStyleInfoEventHandler(gridDisplay_PrepareViewStyleInfo);

            this.tabBarSplitterControl1.ActivePageChanged    += new ControlEventHandler(tabBarSplitterControl1_ActivePageChanged);
            this.tabBarSplitterControl1.ShowVerticalScrollBar = false;
        }