excel 中可插入表单控件,如文本框、单选按钮、复选框、组合框等等,插入后的控件可执行控件格式,如大小、是否锁定、位置、可选文字、数据源区域、单元格链接等操作。当 excel 中已插入控件,需要读取时,可以参考本文中使用 spire.xls for .net 来读取的方法。以下是详细方法和步骤。
安装 spire.xls for .net
首先,您需要添加 spire.xls for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll 文件可以从此链接下载或通过 安装。
pm> install-package spire.xls
读取表单控件
以下是读取控件的方法步骤:
- 创建 workbook 类的对象,并通过 workbook.loadfromfile(string filename) 方法加载 excel 工作簿。
- 通过 workbook.worksheets[int index] 属性获取指定工作表。
- 通过 worksheet.textboxes[int index] 属性获取文本框,并通过 itextbox.text 属性获取文本框中的内容,最后通过 console.writeline() 及 console.readline() 方法输出读取的文本框内容。
- for 循环遍历工作表中所有 radiobuttons,通过 worksheet.radiobuttons[int index] 属性 radiobuttons,并通过 iradiobutton.checkstate 属性获取选择状态、iradiobutton.text 属性获取文本、iradiobutton.islocked 属性获取 iradiobutton 控件是否被锁定。最后通过 console.writeline() 及 console.readline() 方法输出读取内容。
- 通过 worksheet.comboboxes[int index] 获取工作表中的 comboboxes,并通过 icomboboxes.selectedvalue 属性获取当前控件选择的值。最后通过 console.writeline() 及 console.readline() 方法输出读取的 comboboxes 内容。
- for 循环遍历工作表中所有 checkboxes,通过 worksheet.checkboxes[int index] 属性 checkboxes,并通过 icheckbox.checkstate 属性获取选择状态、icheckbox.text 属性获取文本、icheckbox.alternativetext 属性获取可选文本。最后通过 console.writeline() 及 console.readline() 方法输出读取的 icheckbox 内容。
- for 循环遍历工作表中所有 spinnershapes,通过 worksheet.spinnershapes[int index] 属性 spinnershapes,并通过 ispinnershape.linkedcell 属性获取链接的单元格、ispinnershape.currentvalue 属性获取当前值。最后通过 console.writeline() 及 console.readline() 方法输出读取的 ispinnershape 内容。
- c#
- vb.net
using system;
using spire.xls;
using spire.xls.core;
namespace getformcontrol
{
class program
{
static void main(string[] args)
{
//创建workbook类的实例,加载excel文档
workbook wb = new workbook();
wb.loadfromfile("sample.xlsx");
//获取第1张工作表
worksheet sheet = wb.worksheets[0];
//获取textbox
itextbox textbox = sheet.textboxes[0];
string textcontent = textbox.text;
console.writeline("textbox: " textcontent);
console.readline();
//获取radio button
for (int i = 0; i < sheet.radiobuttons.count; i )
{
iradiobutton radiobutton = sheet.radiobuttons[i];
string name = radiobutton.checkstate.tostring();
string text = radiobutton.text;
bool islocked = radiobutton.islocked;
console.writeline("radiobuttons: " name text " 是否锁定:" islocked.tostring());
console.readline();
}
//获取combo box控件中的选中的值(注:非列表中所有选项值)
string value = sheet.comboboxes[0].selectedvalue;
console.writeline("comboboxes: " value);
console.readline();
//获取checkbox
for (int z = 0; z < sheet.checkboxes.count; z )
{
icheckbox checkbox = sheet.checkboxes[z];
string text = checkbox.text;
string name = checkbox.checkstate.tostring();
string alternativetext = checkbox.alternativetext;
console.writeline("checkboxes: " text name alternativetext);
console.readline();
}
//获取spinnershape
for (int j = 0; j < sheet.spinnershapes.count; j )
{
ispinnershape spinnershape = sheet.spinnershapes[j];
string rangeaddress = spinnershape.linkedcell.rangeaddress;
int currentvalue = spinnershape.currentvalue;
console.writeline("spinnershapes: rangeaddress is " rangeaddress "\n" "currentvalue:" currentvalue);
console.readline();
}
}
}
}
imports spire.xls
imports spire.xls.core
namespace getformcontrol
class program
private shared sub main(args as string())
'创建workbook类的实例,加载excel文档
dim wb as new workbook()
wb.loadfromfile("sample.xlsx")
'获取第1张工作表
dim sheet as worksheet = wb.worksheets(0)
'获取textbox
dim textbox as itextbox = sheet.textboxes(0)
dim textcontent as string = textbox.text
console.writeline(convert.tostring("textbox: ") & textcontent)
console.readline()
'获取radio button
for i as integer = 0 to sheet.radiobuttons.count - 1
dim radiobutton as iradiobutton = sheet.radiobuttons(i)
dim name as string = radiobutton.checkstate.tostring()
dim text as string = radiobutton.text
dim islocked as boolean = radiobutton.islocked
console.writeline((convert.tostring(convert.tostring("radiobuttons: ") & name) & text) " 是否锁定:" islocked.tostring())
console.readline()
next
'获取combo box控件中的选中的值(注:非列表中所有选项值)
dim value as string = sheet.comboboxes(0).selectedvalue
console.writeline(convert.tostring("comboboxes: ") & value)
console.readline()
'获取checkbox
for z as integer = 0 to sheet.checkboxes.count - 1
dim checkbox as icheckbox = sheet.checkboxes(z)
dim text as string = checkbox.text
dim name as string = checkbox.checkstate.tostring()
dim alternativetext as string = checkbox.alternativetext
console.writeline(convert.tostring(convert.tostring(convert.tostring("checkboxes: ") & text) & name) & alternativetext)
console.readline()
next
'获取spinnershape
for j as integer = 0 to sheet.spinnershapes.count - 1
dim spinnershape as ispinnershape = sheet.spinnershapes(j)
dim rangeaddress as string = spinnershape.linkedcell.rangeaddress
dim currentvalue as integer = spinnershape.currentvalue
console.writeline((convert.tostring("spinnershapes: rangeaddress is ") & rangeaddress) vblf "currentvalue:" currentvalue)
console.readline()
next
end sub
end class
end namespace
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。