2014-11-14 84 views
1

我仔细研究过这个,但没有找到答案。如何使用.net将复选框添加到Excel电子表格中?

我收到一个任务,要求我在.net中将一些表格数据导出到Excel。我惊喜地发现“ClosedXML”库能够相对容易地完成我想要的大部分功能。但是,当我将我的工作发送给客户时,他表示他希望每行数据都有一个复选框。这个想法是,用户可以选中或取消选中这些框,将文件上传到Web服务器,然后让Web服务器根据选中的框对数据库进行更改。

不幸的是,我找不到任何对ClosedXML中的复选框的引用,并且我在某处讨论的地方看到至少有一条评论(没有任何进一步的解释),ClosedXML不会做复选框。

我试着创建一个Excel电子表格,除了单个复选框外没有任何东西。我想浏览的OpenXML对象模型,发现似乎有以下参照复选框:

document.WorkbookPart.WorksheetParts.Single().ControlPropertiesParts.Single().FormControlProperties

是啊,一切都交给找到一个复选框,更不用说考虑增加一个每一行!

如果我有在Excel中写入数据行的代码,如何将复选框添加到行中?如果我必须使用不同的库,那没问题。

更新:正如@Mike所建议的,很容易将其设置为下拉菜单,用户可以使用数据验证从两个不同选项中进行选择。代码如下所示:

cell.SetValue(item.isOn ? "On" : "Off"); 
cell.DataValidation.List("\"On,Off\"", true); 
+1

我敢说,你的客户即将选择不适合他们需要完成的工具。 Excel不是模拟数据输入对话框的GUI ...它是关于包含表格数据的电子表格。 – stakx 2014-11-14 23:54:20

回答

1

我不熟悉ClosedXML,但我想我明白你的客户的意图。

您可以创建一个空白列,客户端可以在其中键入'X',而不是提供复选框。您甚至可以使用data validation来允许用户从下拉菜单中选择'X'。

+0

虽然这在技术上并不能解决我的问题,但它绝对是一种很好的方式来完成客户的需求。 – 2014-11-17 17:54:25

相关问题