Example #1
0
        private void CreateSheetControls()
        {
            var sheet = reoGridControl.CurrentWorksheet;

            // 自動付番ボタンを追加
            var bangoButton = new ButtonCell("A");

            bangoButton.Click += (s, _e) => sheet["F3"] = rand.Next(100000) + 100000;
            sheet["K3"]        = bangoButton;

            // 性別選択ラジオボタンを作成
            var seibetsuRadioButtonGroup = new RadioButtonGroup();
            var seibetsuOtoko            = new RadioButtonCell()
            {
                RadioGroup = seibetsuRadioButtonGroup
            };
            var seibetsuOna = new RadioButtonCell()
            {
                RadioGroup = seibetsuRadioButtonGroup
            };
            var seibetsuFumei = new RadioButtonCell()
            {
                RadioGroup = seibetsuRadioButtonGroup
            };

            // ラジオボタンをワークシートに追加
            sheet["O6"] = seibetsuOtoko;
            sheet["Q6"] = seibetsuOna;
            sheet["S6"] = seibetsuFumei;

            // 性別選択ラジオボタンを作成
            var ketsuekiGataGroup = new RadioButtonGroup();
            var ketsuekiA         = new RadioButtonCell()
            {
                RadioGroup = ketsuekiGataGroup
            };
            var ketsuekiB = new RadioButtonCell()
            {
                RadioGroup = ketsuekiGataGroup
            };
            var ketsuekiO = new RadioButtonCell()
            {
                RadioGroup = ketsuekiGataGroup
            };
            var ketsuekiAB = new RadioButtonCell()
            {
                RadioGroup = ketsuekiGataGroup
            };
            var ketsuekiFumei = new RadioButtonCell()
            {
                RadioGroup = ketsuekiGataGroup
            };

            // ラジオボタンをワークシートに追加
            sheet["F7"] = ketsuekiA;
            sheet["I7"] = ketsuekiB;
            sheet["L7"] = ketsuekiO;
            sheet["O7"] = ketsuekiAB;
            sheet["R7"] = ketsuekiFumei;

            var kokugaiSumiCheck = new CheckBoxCell();

            sheet["X11"] = kokugaiSumiCheck;

            // すべてのラジオボタンとチェックボックスのスタイルを設定
            foreach (var cell in sheet.Ranges["F6:X11"].Cells)
            {
                if (cell.Body is RadioButtonCell ||
                    cell.Body is CheckBoxCell)
                {
                    // 余白を設定
                    cell.Style.Padding = new PaddingValue(2);

                    // 真ん中に寄せる
                    cell.Style.HAlign = ReoGridHorAlign.Center;
                    cell.Style.VAlign = ReoGridVerAlign.Middle;
                }
            }

            // 国籍リストを追加
            var kokusekiList = new DropdownListCell("日本", "アメリカ", "イギリス", "ドイツ", "フランス", "イタリア", "中国");

            sheet["O8"] = kokusekiList;

            // 郵便番号検索ボタンを追加
            var yubinKensakuButton = new ButtonCell("検索");

            sheet["P12"] = yubinKensakuButton;

            // 入社日・退社日のカレンダーボタンを作成
            var calendarImage    = Resources.Calendar_16;
            var nyusyaDay1Button = new ImageButtonCell(calendarImage);
            var taisyaDay1Button = new ImageButtonCell(calendarImage);
            var nyusyaDay2Button = new ImageButtonCell(calendarImage);
            var taisyaDay2Button = new ImageButtonCell(calendarImage);
            var nyusyaDay3Button = new ImageButtonCell(calendarImage);
            var taisyaDay3Button = new ImageButtonCell(calendarImage);

            // 入社日・退社日のカレンダーボタンをワークシートに追加
            sheet["P18"]  = nyusyaDay1Button;
            sheet["AA18"] = taisyaDay1Button;
            sheet["P21"]  = nyusyaDay2Button;
            sheet["AA21"] = taisyaDay2Button;
            sheet["P24"]  = nyusyaDay3Button;
            sheet["AA24"] = taisyaDay3Button;
        }
Example #2
0
        public void Base64Load(string data)
        {
            var sheets = data.Split(';');

            foreach (var sheetdata in sheets)
            {
                var nameAndSheet = sheetdata.Split(':');
                var name         = nameAndSheet[0];
                var sheetbase64  = nameAndSheet[1];
                var sheet        = Grid.CreateWorksheet(name);
                var databytes    = Convert.FromBase64String(sheetbase64);

                var xmltext = Encoding.UTF8.GetString(databytes);
                var xel     = XElement.Parse(xmltext);

                AddWorksheetData(sheet, xdata => xdata.Xml = xel);

                var xml = new XmlDocument();
                xml.LoadXml(xmltext);

                var origdecsep = xml["grid"]?["head"]?["meta"]?["decimalchar"]?.InnerText;
                if (origdecsep == null)
                {
                    var origcultureid = xml["grid"]?["head"]?["meta"]?["culture"]?.InnerText ?? "en-US";
                    var origculture   = new CultureInfo(origcultureid);
                    origdecsep = origculture.NumberFormat.NumberDecimalSeparator;
                }

                ConvertCulture(xml, origdecsep);

                databytes = Encoding.UTF8.GetBytes(xml.InnerXml);

                var datastream = new MemoryStream(databytes);
                sheet.LoadRGF(datastream);
                Grid.AddWorksheet(sheet);

                var wsxd = _wsxdata[sheet];

                foreach (var element in xel.XPathSelectElements("//cell[@body-type]"))
                {
                    var btxattr = element.Attribute(XName.Get("body-type"));
                    if (btxattr == null)
                    {
                        continue;
                    }

                    if (btxattr.Value.Equals("VerticalProgressCell"))
                    {
                        SetCellBodyFromXml(sheet, element, new VerticalProgressCell());
                    }
                    if (btxattr.Value.Equals("HorizontalProgressCell"))
                    {
                        SetCellBodyFromXml(sheet, element, new HorizontalProgressCell());
                    }

                    if (btxattr.Value.Equals("RadioButtonCell"))
                    {
                        var rc       = ParseRowCol(element);
                        var celldata = sheet.Cells[rc.r, rc.c].Data?
                                       .ToString()
                                       .Equals("True", StringComparison.InvariantCultureIgnoreCase) ?? false;

                        var button = new RadioButtonCell
                        {
                            IsChecked = celldata
                        };

                        var groupattr = element.Attribute(XName.Get("radio-group-range"));
                        if (groupattr != null && RangePosition.IsValidAddress(groupattr.Value))
                        {
                            var range = new RangePosition(groupattr.Value);
                            if (wsxd.RadioGroups.ContainsKey(range))
                            {
                                button.RadioGroup = wsxd.RadioGroups[range];
                            }
                            else
                            {
                                var radiogroup = new RadioButtonGroup();
                                button.RadioGroup = radiogroup;
                                wsxd.RadioGroups.Add(range, radiogroup);
                            }
                        }
                        button.Click += (sender, eventArgs) => SaveChanges();
                        SetCellBodyFromXml(sheet, element, button);
                    }
                    if (btxattr.Value.Equals("CheckBoxCell"))
                    {
                        var rc       = ParseRowCol(element);
                        var celldata = sheet.Cells[rc.r, rc.c].Data?
                                       .ToString()
                                       .Equals("True", StringComparison.InvariantCultureIgnoreCase) ?? false;

                        var button = new CheckBoxCell
                        {
                            IsChecked = celldata
                        };
                        button.Click += (sender, eventArgs) => SaveChanges();
                        SetCellBodyFromXml(sheet, element, button);
                    }
                    if (btxattr.Value.Equals("DropdownListCell"))
                    {
                        var enumattr = element.Attribute(XName.Get("enum-name"));
                        if (enumattr != null)
                        {
                            var rc = ParseRowCol(element);
                            if (rc.r >= 0 && rc.c >= 0)
                            {
                                var button = new DropdownListCell(GetEnumEntries(enumattr.Value));
                                button.SelectedItemChanged  += (sender, args) => SaveChanges();
                                sheet.Cells[rc.r, rc.c].Body = button;
                                if (wsxd.EnumCells.ContainsKey(rc))
                                {
                                    wsxd.EnumCells[rc] = enumattr.Value;
                                }
                                else
                                {
                                    wsxd.EnumCells.Add(rc, enumattr.Value);
                                }
                            }
                        }
                    }

                    var formulael = element.Element(XName.Get("formula"));
                    if (formulael != null)
                    {
                        var rc = ParseRowCol(element);
                        if (rc.r >= 0 && rc.c >= 0)
                        {
                            sheet.SetCellFormula(rc.r, rc.c, formulael.Value);
                        }
                    }
                }
            }
        }