1

我对此进行了仔细研究,但尚未找到答案。

我收到了一项任务,要求我将一些表格数据导出到 .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);
4

1 回答 1

1

我不熟悉ClosedXML,但我想我了解您客户的意图。

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

于 2014-11-14T23:58:24.673 回答