public NumericProgressDemo() { InitializeComponent(); this.worksheet = grid.CurrentWorksheet; var rand = new Random(); worksheet[1, 2] = "パーセントの数値を変更してみてください。"; // 数値プログレスセルを初期化 for (int r = 3; r < 8; r++) { // セルボディを作成してセルに格納 worksheet[r, 2] = new NumericProgressCell(); // 計算式を利用して右側のセルから数値を読み込み worksheet[r, 2] = "=" + new CellPosition(r, 3).ToAddress(); // e.g. D3 // 数値セルの値をランダムで初期化 worksheet[r, 3] = Math.Round(rand.NextDouble(), 2); } // 全ての数値セルの書式をパーセントに設定 worksheet.SetRangeDataFormat(3, 3, 5, 2, DataFormat.CellDataFormatFlag.Percent, new DataFormat.NumberDataFormatter.NumberFormatArgs { DecimalPlaces = 0, }); // フォーカスセルの移動方向を「上から下」に設定 worksheet.SelectionForwardDirection = SelectionForwardDirection.Down; // フォーカスセルの位置を設定 worksheet.FocusPos = new CellPosition(3, 3); // リンクを作成 worksheet.MergeRange(12, 0, 1, 7); worksheet[11, 0] = "カスタマイズしたセル型について詳しくは:"; worksheet[12, 0] = new HyperlinkCell( "https://reogrid.net/jp/document/Custom%20Cell", true); }
public NumericProgressDemo() { InitializeComponent(); this.worksheet = grid.CurrentWorksheet; var rand = new Random(); worksheet[1, 2] = "Try change the value below: "; for (int r = 3; r < 8; r++) { // set customize cell body worksheet[r, 2] = new NumericProgressCell(); // set formula into cell which is used to get data from another cell worksheet[r, 2] = "=" + new CellPosition(r, 3).ToAddress(); // e.g. D3 // generate a random value worksheet[r, 3] = Math.Round(rand.NextDouble(), 2); } // set data format as percent worksheet.SetRangeDataFormat(3, 3, 5, 2, DataFormat.CellDataFormatFlag.Percent, new DataFormat.NumberDataFormatter.NumberFormatArgs { DecimalPlaces = 0, }); // change selection forward direction to down worksheet.SelectionForwardDirection = SelectionForwardDirection.Down; // put focus on cell worksheet.FocusPos = new CellPosition(3, 3); // link worksheet.MergeRange(12, 0, 1, 7); worksheet[11, 0] = "More info about Custom Cell:"; worksheet[12, 0] = new HyperlinkCell( "https://reogrid.net/document/Custom%20Cell", true); }
public BuiltInTypesDemo() { InitializeComponent(); this.worksheet = grid.CurrentWorksheet; // set default sheet style worksheet.SetRangeStyles(RangePosition.EntireRange, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontName | PlainStyleFlag.VerticalAlign, FontName = "Arial", VAlign = ReoGridVerAlign.Middle, }); worksheet.SetSettings(WorksheetSettings.View_ShowGridLine | WorksheetSettings.Edit_DragSelectionToMoveCells, false); worksheet.SelectionMode = WorksheetSelectionMode.Cell; worksheet.SelectionStyle = WorksheetSelectionStyle.FocusRect; var middleStyle = new WorksheetRangeStyle { Flag = PlainStyleFlag.Padding | PlainStyleFlag.HorizontalAlign, Padding = new PaddingValue(2), HAlign = ReoGridHorAlign.Center, }; var grayTextStyle = new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor, TextColor = Color.DimGray }; worksheet.MergeRange(1, 1, 1, 6); worksheet.SetRangeStyles(1, 1, 1, 6, new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor | PlainStyleFlag.FontSize, TextColor = Color.DarkGreen, FontSize = 18, }); worksheet[1, 1] = "Built-in Cell Bodies"; worksheet.SetColumnsWidth(1, 1, 100); worksheet.SetColumnsWidth(2, 1, 30); worksheet.SetColumnsWidth(3, 1, 100); worksheet.SetColumnsWidth(6, 2, 65); // button worksheet.MergeRange(3, 2, 1, 2); var btn = new ButtonCell("Hello"); worksheet[3, 1] = new object[] { "Button: ", btn }; btn.Click += (s, e) => ShowText("Button clicked."); // link worksheet.MergeRange(5, 2, 1, 3); var link = new HyperlinkCell("http://www.google.com") { AutoNavigate = false }; worksheet[5, 1] = new object[] { "Hyperlink", link }; link.Click += (s, e) => System.Diagnostics.Process.Start(worksheet.GetCellText(5, 2)); // checkbox var checkbox = new CheckBoxCell(); worksheet.SetRangeStyles(7, 2, 1, 1, middleStyle); worksheet.SetRangeStyles(8, 2, 1, 1, grayTextStyle); worksheet[7, 1] = new object[] { "Check box", checkbox, "Auto destroy after 5 minutes." }; worksheet[8, 2] = "(Keyboard is also supported to change the status of control)"; checkbox.CheckChanged += (s, e) => ShowText("Check box switch to " + checkbox.IsChecked.ToString()); // radio & radio group worksheet[10, 1] = "Radio Button"; worksheet.SetRangeStyles(10, 2, 3, 1, middleStyle); var radioGroup = new RadioButtonGroup(); worksheet[10, 2] = new object[, ] { { new RadioButtonCell() { RadioGroup = radioGroup }, "Apple" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "Orange" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "Banana" } }; radioGroup.RadioButtons.ForEach(rb => rb.CheckChanged += (s, e) => ShowText("Radio button selected: " + worksheet[rb.Cell.Row, rb.Cell.Column + 1])); worksheet[10, 2] = true; worksheet[13, 2] = "(By adding radio buttons into same RadioGroup to make them toggle each other automatically)"; worksheet.SetRangeStyles(13, 2, 1, 1, grayTextStyle); // dropdown worksheet.MergeRange(15, 2, 1, 3); var dropdown = new DropdownListCell("Apple", "Orange", "Banana", "Pear", "Pumpkin", "Cherry", "Coconut"); worksheet[15, 1] = new object[] { "Dropdown", dropdown }; worksheet.SetRangeBorders(15, 2, 1, 3, BorderPositions.Outside, RangeBorderStyle.GraySolid); dropdown.SelectedItemChanged += (s, e) => ShowText("Dropdown list selected: " + dropdown.SelectedItem); // image worksheet.MergeRange(2, 6, 5, 2); worksheet[2, 6] = new ImageCell(Resources.computer_laptop); // information cell worksheet.SetRangeBorders(19, 0, 1, 10, BorderPositions.Top, RangeBorderStyle.GraySolid); }
private void AddDemoSheet3() { /****************** Sheet3 : Built-in Cell Types ********************/ var worksheet = grid.NewWorksheet("Cell Types"); // set default sheet style worksheet.SetRangeStyles(RangePosition.EntireRange, new WorksheetRangeStyle { Flag = PlainStyleFlag.FontName | PlainStyleFlag.VerticalAlign, FontName = "Arial", VAlign = ReoGridVerAlign.Middle, }); worksheet.SetSettings(WorksheetSettings.View_ShowGridLine | WorksheetSettings.Edit_DragSelectionToMoveCells, false); worksheet.SelectionMode = WorksheetSelectionMode.Cell; worksheet.SelectionStyle = WorksheetSelectionStyle.FocusRect; var middleStyle = new WorksheetRangeStyle { Flag = PlainStyleFlag.Padding | PlainStyleFlag.HorizontalAlign, Padding = new PaddingValue(2), HAlign = ReoGridHorAlign.Center, }; var grayTextStyle = new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor, TextColor = Colors.DimGray }; worksheet.MergeRange(1, 1, 1, 6); worksheet.SetRangeStyles(1, 1, 1, 6, new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor | PlainStyleFlag.FontSize, TextColor = Colors.DarkGreen, FontSize = 18, }); worksheet[1, 1] = "Built-in Cell Bodies"; worksheet.SetColumnsWidth(1, 1, 100); worksheet.SetColumnsWidth(2, 1, 30); worksheet.SetColumnsWidth(3, 1, 100); worksheet.SetColumnsWidth(6, 2, 65); // button worksheet.MergeRange(3, 2, 1, 2); var btn = new ButtonCell("Hello"); worksheet[3, 1] = new object[] { "Button: ", btn }; btn.Click += (s, e) => ShowText(worksheet, "Button clicked."); // link worksheet.MergeRange(5, 2, 1, 3); var link = new HyperlinkCell("http://www.google.com"); worksheet[5, 1] = new object[] { "Hyperlink", link }; // checkbox var checkbox = new CheckBoxCell(); worksheet.SetRangeStyles(7, 2, 1, 1, middleStyle); worksheet.SetRangeStyles(8, 2, 1, 1, grayTextStyle); worksheet[7, 1] = new object[] { "Check box", checkbox, "Auto destroy after 5 minutes." }; worksheet[8, 2] = "(Keyboard is also supported to change the status of control)"; checkbox.CheckChanged += (s, e) => ShowText(worksheet, "Check box switch to " + checkbox.IsChecked.ToString()); // radio & radio group worksheet[10, 1] = "Radio Button"; worksheet.SetRangeStyles(10, 2, 3, 1, middleStyle); var radioGroup = new RadioButtonGroup(); worksheet[10, 2] = new object[, ] { { new RadioButtonCell() { RadioGroup = radioGroup }, "Apple" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "Orange" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "Banana" } }; radioGroup.RadioButtons.ForEach(rb => rb.CheckChanged += (s, e) => ShowText(worksheet, "Radio button selected: " + worksheet[rb.Cell.Row, rb.Cell.Column + 1])); worksheet[10, 2] = true; worksheet[13, 2] = "(By adding radio buttons into same RadioGroup to make them toggle each other automatically)"; worksheet.SetRangeStyles(13, 2, 1, 1, grayTextStyle); // dropdown - Not available yet - Planned from next version //worksheet.MergeRange(15, 2, 1, 3); //var dropdown = new DropdownListCell("Apple", "Orange", "Banana", "Pear", "Pumpkin", "Cherry", "Coconut"); //worksheet[15, 1] = new object[] { "Dropdown", dropdown }; //worksheet.SetRangeBorders(15, 2, 1, 3, BorderPositions.Outside, RangeBorderStyle.GraySolid); // custom cell type - slide cell body worksheet.MergeRange(15, 2, 1, 2); worksheet[15, 1] = new object[] { "Brightness", new SlideCellBody() }; worksheet[15, 2] = 1; worksheet.CellDataChanged += (s, e) => { if (e.Cell.Position == new CellPosition(15, 2)) { byte val = (byte)(worksheet.GetCellData <double>(e.Cell.Position) * 255); worksheet.SetRangeStyles(RangePosition.EntireRange, new WorksheetRangeStyle { Flag = PlainStyleFlag.BackColor, BackColor = new Graphics.SolidColor(val, val, val), }); } }; // image worksheet.MergeRange(2, 6, 5, 2); var image = new System.Windows.Media.Imaging.BitmapImage(); image.BeginInit(); using (MemoryStream memory = new MemoryStream(Properties.Resources.computer_laptop_png)) { image.StreamSource = memory; image.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad; image.EndInit(); } worksheet[2, 6] = new ImageCell(image); // information cell worksheet.SetRangeBorders(19, 0, 1, 10, BorderPositions.Top, RangeBorderStyle.GraySolid); }
public BuiltInCellTypesDemo() { InitializeComponent(); this.worksheet = grid.CurrentWorksheet; // ワークシート全体のスタイルを設定 worksheet.SetRangeStyles(RangePosition.EntireRange, new WorksheetRangeStyle { // フォント名と縦位置の揃え方を設定 Flag = PlainStyleFlag.FontName | PlainStyleFlag.VerticalAlign, FontName = "Arial", VAlign = ReoGridVerAlign.Middle, }); // グリッドラインを非表示 worksheet.SetSettings(WorksheetSettings.View_ShowGridLine | WorksheetSettings.Edit_DragSelectionToMoveCells, false); // 選択モードを単一セルのみに設定 worksheet.SelectionMode = WorksheetSelectionMode.Cell; // 選択スタイルを Focus に設定 worksheet.SelectionStyle = WorksheetSelectionStyle.FocusRect; var grayTextStyle = new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor, TextColor = Color.DimGray }; worksheet.MergeRange(1, 1, 1, 6); // B2:G2 worksheet.SetRangeStyles(1, 1, 1, 6, new WorksheetRangeStyle { Flag = PlainStyleFlag.TextColor | PlainStyleFlag.FontSize, TextColor = Color.DarkGreen, FontSize = 18, }); worksheet[1, 1] = "内蔵セル型"; // 列幅を調整 worksheet.SetColumnsWidth(1, 1, 100); worksheet.SetColumnsWidth(2, 1, 30); worksheet.SetColumnsWidth(3, 1, 100); worksheet.SetColumnsWidth(6, 2, 65); // ボタン worksheet.MergeRange(3, 2, 1, 2); // C4:D4 var btn = new ButtonCell("ボタン"); worksheet[3, 1] = new object[] { "ボタン: ", btn }; btn.Click += (s, e) => ShowText("ボタンがクリックされた。"); // リンク worksheet.MergeRange(5, 2, 1, 3); // C6:E6 var link = new HyperlinkCell("https://www.google.com") { AutoNavigate = false }; worksheet[5, 1] = new object[] { "ハイパーリンク", link }; link.Click += (s, e) => RGUtility.OpenFileOrLink(worksheet.GetCellText(5, 2)); // チェックボックス var checkbox = new CheckBoxCell(); worksheet.SetRangeStyles(8, 2, 1, 1, grayTextStyle); // C9:C9 worksheet[7, 1] = new object[] { "チェックボックス", checkbox, "テキストは別のセルを利用します" }; worksheet[8, 2] = "(セル型の編集はキーボードでも変更できます)"; checkbox.CheckChanged += (s, e) => ShowText("チェックステータスが変更された: " + checkbox.IsChecked.ToString()); // ラジオボタン worksheet[10, 1] = "Radio Button"; // B11 var radioGroup = new RadioButtonGroup(); // ラジオボタングループを作成 worksheet[10, 2] = new object[, ] { // C11 { new RadioButtonCell() { RadioGroup = radioGroup }, "リンゴ" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "ミカン" }, { new RadioButtonCell() { RadioGroup = radioGroup }, "バナナ" } }; radioGroup.RadioButtons.ForEach(rb => rb.CheckChanged += (s, e) => ShowText("ラジオボタンのステータスが変更された:" + worksheet[rb.Cell.Row, rb.Cell.Column + 1])); worksheet[10, 2] = true; worksheet[13, 2] = "(RadioGroup に複数のラジオボタンを追加するとお互いに切り替えることができます)"; worksheet.SetRangeStyles(13, 2, 1, 1, grayTextStyle); //C14 // ドロップダウンリスト worksheet.MergeRange(15, 2, 1, 3); // C16:E16 var dropdown = new DropdownListCell("リンゴ", "ミカン", "バナナ", "ナシ", "カボチャ", "チェリー", "ココナッツ"); worksheet[15, 1] = new object[] { "ドロップダウン", dropdown }; worksheet.SetRangeBorders(15, 2, 1, 3, BorderPositions.Outside, RangeBorderStyle.GraySolid); dropdown.SelectedItemChanged += (s, e) => ShowText("ドロップダウンの項目が選択された:" + dropdown.SelectedItem); // イメージ worksheet.MergeRange(2, 6, 5, 2); // G3:H7 worksheet[2, 6] = new ImageCell(Resources.computer_laptop); // イベント情報 worksheet.SetRangeBorders("A20:J20", BorderPositions.Top, RangeBorderStyle.GraySolid); }
public static string CellToHtml(LightweightCell cell) { if (cell is PlaintextCell) { PlaintextCell cur = (PlaintextCell)cell; return(FormatText(cur.Text, cur.Kind, CssHelper.GenericPositiveCssClass, CssHelper.GenericNegativeCssClass)); } else if (cell is HyperlinkCell) { HyperlinkCell cur = (HyperlinkCell)cell; int id = cur.LinkObjectID; string url = string.Empty; switch (cur.LinkType) { case HyperlinkCell.LinkObjectType.Contest: url = UrlRenderer.RenderContestUrl(id); break; case HyperlinkCell.LinkObjectType.Monitor: url = UrlRenderer.RenderMonitorUrl(id); break; case HyperlinkCell.LinkObjectType.Problem: url = UrlRenderer.RenderProblemUrl(id); break; case HyperlinkCell.LinkObjectType.Submission: url = UrlRenderer.RenderTestlogUrl(id); break; default: throw new ArgumentException(string.Format("Invalid link object type {0}", cur.LinkType)); } return(string.Format("<a href='{0}'>{1}</a>", HttpContext.Current.Request.MapPath(url), cur.Text)); } else if (cell is OutcomeInfoCell) { OutcomeInfoCell cur = (OutcomeInfoCell)cell; return(FormatText(cur.Info.PrintableValue, cur.Info.Kind, CssHelper.GenericPositiveCssClass, CssHelper.GenericNegativeCssClass)); } else if (cell is MonitorCell) { MonitorCell cur = (MonitorCell)cell; string ret = FormatText(cur.Text, cur.Kind, CssHelper.MonitorPositiveCssClass, CssHelper.MonitorNegativeCssClass); if (cur.ShowTime) { ret += string.Format("<span class='{0}'>{1}</span>", CssHelper.TimeSpanCssClass, TimeUtils.BeautifyTimeSpan(cur.Time, true)); } return(ret); } else { throw new ArgumentException(string.Format("Invalid cell type {0}", cell.GetType())); } }