找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

260

帖子

1673

积分

超级版主

Rank: 8Rank: 8

积分
1673
Winny
超级版主   /  发表于:2022-9-8 19:20  /   查看:1896  /  回复:0
本帖最后由 Winny 于 2022-9-8 19:56 编辑

Excel表单控件提供了单选框、复选框等元素,简化用户填报流程。GCExcel V5.2之后,对Excel中的表单控件做了支撑,支持Excel中表单控件的创建及导入导出,下面会详细介绍表单控件的实现方式。

1. 下拉框
  1. // 下拉框
  2.                 IDropDown dropBox1 = ws.getControls().addDropDown(21.55, 38.4, 276.4, 30.19);
  3.                 dropBox1.getItems().add(new DropDownItem("下拉选项1"));
  4.                 dropBox1.getItems().add(new DropDownItem("下拉选项2"));
  5.                 dropBox1.getItems().add(new DropDownItem("下拉选项3"));
  6.                 dropBox1.setSelectedIndex(0);

  7.                 ws.getRange("B12:B15").setValue(new Object[][] { { "下拉项" }, { "香蕉" }, { "苹果" }, { "梨" } });
  8.                 ws.getRange("D12:D13").setValue(new Object[][] { { "Value" }, { 1d } });
  9.                 IDropDown dropBox2 = ws.getControls().addDropDown(20.95, 123.8, 279.9, 26.50);
  10.                 // 下拉数据来源于区域数据
  11.                 dropBox2.setItemsSourceRange(ws.getRange("B13:B15"));
  12.                 dropBox2.setLinkedCell(ws.getRange("D13"));
  13.                 dropBox2.setSelectedIndex(0);
复制代码
导出Excel之后,展示如下:
image.png689899902.png

2.  分组框
  1. // 分组框
  2.                 IGroupBox groupBox2 = ws.getControls().addGroupBox(23.55, 153.6, 136.39, 116.4);
  3.                 groupBox2.setText("Group 2");
  4.                 IRange e12 = ws.getRange("E12");
  5.                 e12.setValue(1d);
  6.                 IOptionButton optionButton1 = ws.getControls().addOptionButton(42.75, 170.4, 77.7, 15.79);
  7.                 optionButton1.setLinkedCell(e12);
  8.                 optionButton1.setIsChecked(true);

  9.                 IOptionButton optionButton2 = ws.getControls().addOptionButton(42.75, 201, 77.7, 17.69);
  10.                 optionButton2.setLinkedCell(e12);

  11.                 IOptionButton optionButton3 = ws.getControls().addOptionButton(42.75, 235.2, 77.7, 17);
  12.                 optionButton3.setDisplay3DShading(true);
  13.                 optionButton3.setLinkedCell(e12);
复制代码
分组框中可以包含很多选项按钮,导出Excel之后显示如下: image.png623583678.png

3.  列表框
  1. // 列表框
  2.                 IListBox listBox1 = ws.getControls().addListBox(23.6, 32.8, 170, 80.9);
  3.                 listBox1.getItems().add(new ListBoxItem("Unbound Item 1"));
  4.                 listBox1.getItems().add(new ListBoxItem("Unbound Item 2"));
  5.                 listBox1.getItems().add(new ListBoxItem("Unbound Item 3"));
  6.                 listBox1.setSelectedIndex(0);

  7.                 ws.getRange("F11:F14").setValue(new Object[][] { { "Items" }, { "Item 1" }, { "Item 2" }, { "Item 3" } });

  8.                 ws.getRange("G11:G12").setValue(new Object[][] { { "Value" }, { 1d } });

  9.                 // 从特定区域填充列表项
  10.                 IListBox listBox2 = ws.getControls().addListBox(23.7, 153.7, 170, 80.30);
  11.                 listBox2.setItemsSourceRange(ws.getRange("F12:F14"));
  12.                 listBox2.setLinkedCell(ws.getRange("G12"));
  13.                 listBox2.setSelectedIndex(0);

  14.                 // 定义选择模式
  15.                 IListBox listBox3 = ws.getControls().addListBox(24.1, 273.1, 170, 78.69);
  16.                 listBox3.getItems().add(new ListBoxItem("Multi-select Item 1"));
  17.                 listBox3.getItems().add(new ListBoxItem("Multi-select Item 2"));
  18.                 listBox3.getItems().add(new ListBoxItem("Multi-select Item 3"));
  19.                 listBox3.setSelectionMode(SelectionMode.Extended);
  20.                 listBox3.getSelectedItems().add(listBox3.getItems().get(0));
  21.                 listBox3.getSelectedItems().add(listBox3.getItems().get(2));
复制代码


导出Excel之后显示如下:
image.png568597106.png


4. 复选框
  1.   // 复选框
  2.                 ICheckBox checkBox1 = ws.getControls().addCheckBox(23.1, 39.6, 88.5, 25.80);
  3.                 checkBox1.setDisplay3DShading(true);
  4.                 checkBox1.setIsChecked(false);

  5.                 ICheckBox checkBox2 = ws.getControls().addCheckBox(23.1, 72, 88.5, 21);
  6.                 checkBox2.setIsChecked(true);
  7.                 checkBox2.setText("Checked");

  8.                 ICheckBox checkBox3 = ws.getControls().addCheckBox(23.1, 101.4, 88.5, 20.39);
  9.                 checkBox3.setIsChecked(null);
  10.                 checkBox3.setText("Mixed");

  11.                 // Data binding

  12.                 ws.getRange("B11").setValue("It also supports data binding.");
  13.                 ICheckBox checkBox4 = ws.getControls().addCheckBox(22.5, 175.8, 104.1, 23.39);
  14.                 checkBox4.setLinkedCell(ws.getRange("D13"));
  15.                 checkBox4.setIsChecked(true);
复制代码

导出Excel之后显示如下:
image.png455602721.png

5. 数值调节框
  1. // 数值调节钮
  2.                 ws.getRange("B9").setValue(6d);
  3.                 ws.getRange("8:8").setRowHeight(7.8d);
  4.                 ws.getRange("9:9").setRowHeight(25.8d);
  5.                 ws.getRange("A:A").setColumnWidthInPixel(36d);
  6.                 IRange b9 = ws.getRange("B9");
  7.                 b9.setHorizontalAlignment(HorizontalAlignment.Left);
  8.                 b9.setVerticalAlignment(VerticalAlignment.Center);
  9.                 b9.setAddIndent(false);

  10.                 ISpinner spinner2 = ws.getControls().addSpinner(48.5, 113.5, 25.5, b9.getHeight() - 2);
  11.                 spinner2.setMax(10);
  12.                 spinner2.setMin(1);
  13.                 spinner2.setDisplay3DShading(false);
  14.                 spinner2.setLinkedCell(b9);
  15.                 spinner2.setValue(6);
复制代码


导出Excel显示如下:
image.png20574339.png

6. 按钮
  1. // 按钮
  2.                 IButton button = ws.getControls().addButton(50, 30, 120, 40);
  3.                 button.setText("按钮");
  4.                 button.setPrintObject(true);
  5.                 button.setHorizontalTextAlignment(HorizontalAlignment.Center);
  6.                 button.setVerticalTextAlignment(VerticalAlignment.Center);
复制代码

导出Excel显示如下:
image.png894860839.png

7. 标签
  1. // 标签
  2.                 ws.getControls().addLabel(25.8, 9.6, 27, 13.2).setText("这是一个label");
复制代码

导出Excel显示如下:
image.png146257933.png

8. 滚动条
  1. // 滚动条
  2.                 IScrollBar scrollBar1 = ws.getControls().addScrollBar(28.3, 39, 257.4, 24.20);
  3.                 scrollBar1.setLargeChange(2);
  4.                 // 水滚动条
  5.                 scrollBar1.setOrientation(FormControlOrientation.Horizontal);
  6.                 scrollBar1.setMax(10);
  7.                 scrollBar1.setMin(1);
  8.                 scrollBar1.setValue(3);

  9.                 IScrollBar scrollBar2 = ws.getControls().addScrollBar(304.7, 23.7, 26.10, 136.10);
  10.                 scrollBar2.setLargeChange(2);
  11.                 // 垂直滚动条
  12.                 scrollBar2.setOrientation(FormControlOrientation.Vertical);
  13.                 scrollBar2.setMax(10);
  14.                 scrollBar2.setMin(1);
  15.                 scrollBar2.setSmallChange(1);
  16.                 scrollBar2.setValue(1);

  17.                 // Data binding

  18.                 ws.getRange("B7").setValue("It can be linked to a cell to bind the value.");
  19.                 ws.getRange("B9:C9").setValue(new Object[][] { { "Value", 4d } });

  20.                 IScrollBar scrollBar3 = ws.getControls().addScrollBar(26.5, 140, 255, 21);
  21.                 scrollBar3.setLargeChange(2);
  22.                 scrollBar3.setOrientation(FormControlOrientation.Horizontal);
  23.                 scrollBar3.setMax(10);
  24.                 scrollBar3.setMin(1);
  25.                 scrollBar3.setSmallChange(1);
  26.                 scrollBar3.setLinkedCell(ws.getRange("C9"));
  27.                 scrollBar3.setValue(1);
复制代码


导出Excel显示如下:
image.png440859069.png

以上表单控件支持导出PDF,执行WorkBook.save("test.pdf")即可。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部