如何使用.net将复选框添加到Excel电子表格中?

时间:2014-11-14 23:49:18

标签: .net excel openxml closedxml

我仔细研究了这个,但还没有找到答案。

我收到一项任务,要求我将一些表格数据导出到.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 个答案:

答案 0 :(得分:1)

我不熟悉ClosedXML,但我认为我了解客户的意图。

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