Tag: closedxml

如何使用.net将checkbox添加到Excel电子表格?

我仔细研究过这个,但是还没有find答案。 我收到一个任务,要求我在.net中将一些表格数据导出到Excel中。 我惊喜地发现“ClosedXML”库能够相对简单地完成我想要的大部分function。 但是,当我把我的工作交给我的客户时,他说他希望每行数据都有一个checkbox。 这个想法是,用户可以检查和取消选中这些框,将file upload到Web服务器,然后让Web服务器根据选中的框对数据库进行更改。 不幸的是,我找不到任何关于ClosedXML中的checkbox的引用,并且我在某处的讨论中看到至less有一条评论(没有任何进一步的解释),ClosedXML不会做checkbox。 我试图创build一个Excel电子表格,除了一个checkbox,没有任何东西。 我尝试浏览OpenXML对象模型,发现似乎有以下对checkbox的引用: document.WorkbookPart.WorksheetParts.Single().ControlPropertiesParts.Single().FormControlProperties 是的,所有这些都可以find一个checkbox,更不用说为每一行添加一个! 如果我有在Excel中写入数据行的代码,如何将checkbox添加到行? 如果我必须使用不同的库,那没关系。 更新:正如@Mike所build议的,很容易将其设置为下拉菜单,用户可以使用数据validation从两个不同的选项中进行select。 代码如下所示: cell.SetValue(item.isOn ? "On" : "Off"); cell.DataValidation.List("\"On,Off\"", true);

通过它的代号来获取工作表

每个Excel工作表都有一个SheetName(名称显示给用户)和一个Codename(内部不可变的名称,用户不可见),见下图。 我需要通过它的代号而不是它的SheetName来获得工作表。 原因是如果用户更改SheetName,我的实际代码将不再工作。 只要suer不会将SheetName“Sales”更改为其他值: var myworksheet = Worksheet("Sales"); 我需要假设函数WorksheetByCodeName所以我可以写这个(如果用户已经将SheetName从“Sales”更改为其他内容,也可以这样做: var myworksheet = WorksheetByCodeName("Sheet1"); 此图片仅用于说明。 这个问题与VBA无关。 有关工作表代号的更多信息

获取并设置ClosedXML.Excel的单元格值和Id

我正在通过closedxml创build一个excel文件。 我可以设置它的单元格值如下所示。 worksheet.Cell(rowPosition, cellPosition).Value="abc"; 我需要的是设置一个与它的值相关的单元的ID,而这个单元对用户是不可见的。 所以当我再次以编程方式读取这个excel文件时,我可以使用这个Id作为Id唯一的文件。 提前致谢

ClosedXML负面持续时间

我正在创buildexcel文件的报告。 在报告中,我有持续时间stringHH:MM 。 一切看起来很好,直到持续时间为"-HH:MM"对于非负的持续时间,excel工作良好,但对于负面它performance为像######## 这是我在C#中做的事情: worksheet.Cell("F" + _freeFrom).Value = totalDuration; worksheet.Cell("F" + _freeFrom).Style.NumberFormat.Format = "H:mm"; 任何人都有想法如何解决这个问题?

在Excel中无法识别使用ClosedXML创build的公式

到目前为止,我已经使用Microsoft.Office.Interop库将数据导出到Excel。 现在我需要使用ClosedXML来完成它。 一切工作正常,除了公式。 每个配方本身都可以正确导出,但只要双击其内容并按下Enter键,它就不会“起作用”。 我附上一张截图来澄清这一点。 注意:图像中的范围(P2:P3)是黑色的,直到我点击它变成蓝色。 这不知何故使Excel识别的内容。 以前我使用的是: Imports Microsoft.Office.Interop worksheet.Cells(i, j).FormulaLocal = "=SUMA(" & col_letter & "2:" & col_letter & rowcount & ")" 现在我正在使用: Imports ClosedXML.Excel worksheet.Cell(i, j).SetFormulaA1("SUMA(" & col_letter & "2:" & col_letter & rowcount & ")") 这是如此简单,我完全卡住了。 任何帮助将不胜感激!

在WebAPI中以返回HttpResponseMessage作为Excel文件的问题

我创build了WebAPI,它使用closedxml nuget返回一个excel文件。 基本上它将我的DataTable转换为Excel。 我指的是下面的几个链接, 如何在ASP.NET WebAPI中返回一个文件(FileContentResult) 在ASP.NET Web API中从控制器返回二进制文件 问题:在服务器path上生成的excel没有问题。 但是,当我通过webAPI将它作为HttpResponseMessage返回时下载相同的Excel文件已损坏。 它说,“该文件已损坏,无法打开”:( 我的代码: [System.Web.Http.AcceptVerbs("GET", "POST")] public HttpResponseMessage ExportExcel() { DataTable scoredRecords = Getdt(); if (scoredRecords.Rows.Count > 0) { var path = @"C:\Raghav\asdf.xlsx"; XLWorkbook wb = new XLWorkbook(); wb.Worksheets.Add(scoredRecords, "sample"); // excel getting generated on server properly-No issues. wb.SaveAs(path); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); var stream […]

ClosedXML和C#:如何按默认折叠行?

我正在尝试编写生成Excel数据透视表的代码。 为了完成这个任务,我使用了ClosedXML库。 输出如下所示: 问题是我必须得到所有的数据组默认情况下,即在输出我应该看到以下内容: 换句话说,我的输出应该包含折叠行,只有摘要应该显示。 我怎样才能在代码中实现这一点? 我应该使用哪种方法? pt.ShowRowStripes = true; secondWorksheet.FirstRow().Hide(); secondWorksheet.TabActive = true; secondWorksheet.CollapseRows(1); secondWorksheet.Rows().Collapse(); pt.EnableShowDetails = false; pt.ShowValuesRow = false; secondWorksheet.PageSetup.ShowGridlines = true; secondWorksheet.ShowGridLines = true; workbook.PageOptions.ShowGridlines = true; secondWorksheet.PivotTables.First().EnableShowDetails = false;

如何testing如果两个单元格在Excel中使用closedxml相等?

我需要testing两个单元格是否相等,使用closedxml,这是我正在使用的基本代码: if ((PipeSheet.Cell(j, 3).Value == SheetToEdit.Cell(i, RegionCodeInMain).Value)) 但是,它不工作。 我为每一方都设置了一个手表的中断点,即使它们是平等的,它仍然在评估为假。 PipeSheet和SheetToEdit以及i和j是我设置的variables。 我需要做什么不同?

ClosedXml范围错误

我正在使用ClosedXml,并试图从范围表中创build一个范围的头时出现以下错误。 单元格A13和P13在“SalesOrderHeaderId_1”!A7:P8'范围之外。 这里是我用来尝试创build范围的C#代码: var sohRngTable = ws.Range("A7:P8"); var sohRngHeaders = sohRngTable.Range("A7:P7"); 它尝试创buildsohRngHeaders的第二行失败,它的行为像一个工作表的默认大小,但我不知道,我不知道如何改变它或通过这个错误。

使用ClosedXML在工作表中插入形状

使用ClosedXML将形状插入到Excel工作表中是否可行? Thnaks Tobi