C# ClosedXML添加带条件格式的工作表
我正在使用ClosedXML将新工作表添加到现有Excel文档中。 它适用于普通Excel文档 但如果excel文档工作表在某些单元格上包含条件格式,则会抛出错误C# ClosedXML添加带条件格式的工作表,c#,openxml,conditional-formatting,closedxml,office-2016,C#,Openxml,Conditional Formatting,Closedxml,Office 2016,我正在使用ClosedXML将新工作表添加到现有Excel文档中。 它适用于普通Excel文档 但如果excel文档工作表在某些单元格上包含条件格式,则会抛出错误 at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at ClosedXML.Excel.XLCFConverters.Convert(IXLConditionalFormat conditionalFormat, Int32 priority, SaveC
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at ClosedXML.Excel.XLCFConverters.Convert(IXLConditionalFormat conditionalFormat, Int32 priority, SaveContext context)
at ClosedXML.Excel.XLWorkbook.GenerateWorksheetPartContent(WorksheetPart worksheetPart, XLWorksheet xlWorksheet, SaveContext context)
at ClosedXML.Excel.XLWorkbook.CreateParts(SpreadsheetDocument document)
at ClosedXML.Excel.XLWorkbook.CreatePackage(String filePath, SpreadsheetDocumentType spreadsheetDocumentType)
at ClosedXML.Excel.XLWorkbook.SaveAs(String file)
下面是示例代码
using (var excelDoc = new ClosedXML.Excel.XLWorkbook(strFilePath))
{
excelDoc.Worksheets.Add("New Result Sheet");
excelDoc.SaveAs(strFilePathSave);
}
请帮助解决此问题。是一个.NET库,用于读取和写入Excel 2003/2007/2010/2013/2016文件。使用XlsIO,您可以非常轻松地添加/修改具有条件格式的工作表,而不会出现问题。如果您符合条件,则可通过免费(也可用于商业应用)获取整套控件。社区许可证是没有限制或水印的完整产品
步骤1:创建控制台应用程序
步骤2:添加对Syncfusion.XlsIO.Base和Syncfusion.Compression.Base的引用,也可以使用NuGet将这些引用添加到项目中
步骤3:复制并粘贴以下代码段
下面的代码片段演示了如何使用XlsIO添加具有条件格式的工作表
using (ExcelEngine excelEngine = new ExcelEngine())
{
//Instantiate the excel application object.
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2013;
//Open the workbook
IWorkbook workbook = application.Workbooks.Open("Input.xlsx");
(workbook.Worksheets as WorksheetsCollection).Add("NewSheet");
IWorksheet worksheet = workbook.Worksheets[1];
IConditionalFormats condition = worksheet.Range["A1"].ConditionalFormats;
IConditionalFormat condition1 = condition.AddCondition();
condition1.FormatType = ExcelCFType.CellValue;
condition1.Operator = ExcelComparisonOperator.Between;
condition1.FirstFormula = "10";
condition1.SecondFormula = "20";
condition1.BackColor = ExcelKnownColors.Red;
worksheet.Range["A1"].Number = 13;
//Save the workbook
workbook.SaveAs("AddedWorkbook.xlsx");
}
请参考示例以实现此场景,可以从以下位置下载示例
有关XlsIO的更多信息,请参考我们的
注:我为Syncfusion工作是一个.NET库,用于读取和写入Excel 2003/2007/2010/2013/2016文件。使用XlsIO,您可以非常轻松地添加/修改具有条件格式的工作表,而不会出现问题。如果您符合条件,则可通过免费(也可用于商业应用)获取整套控件。社区许可证是没有限制或水印的完整产品
步骤1:创建控制台应用程序
步骤2:添加对Syncfusion.XlsIO.Base和Syncfusion.Compression.Base的引用,也可以使用NuGet将这些引用添加到项目中
步骤3:复制并粘贴以下代码段
下面的代码片段演示了如何使用XlsIO添加具有条件格式的工作表
using (ExcelEngine excelEngine = new ExcelEngine())
{
//Instantiate the excel application object.
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2013;
//Open the workbook
IWorkbook workbook = application.Workbooks.Open("Input.xlsx");
(workbook.Worksheets as WorksheetsCollection).Add("NewSheet");
IWorksheet worksheet = workbook.Worksheets[1];
IConditionalFormats condition = worksheet.Range["A1"].ConditionalFormats;
IConditionalFormat condition1 = condition.AddCondition();
condition1.FormatType = ExcelCFType.CellValue;
condition1.Operator = ExcelComparisonOperator.Between;
condition1.FirstFormula = "10";
condition1.SecondFormula = "20";
condition1.BackColor = ExcelKnownColors.Red;
worksheet.Range["A1"].Number = 13;
//Save the workbook
workbook.SaveAs("AddedWorkbook.xlsx");
}
请参考示例以实现此场景,可以从以下位置下载示例
有关XlsIO的更多信息,请参考我们的
注意:我为Syncfusion工作我不打算使用这个。如果您知道ClosedXML中的修复/解决方法,那么它将非常有帮助。我不打算使用它。如果您知道ClosedXML中的修复/解决方法,那么它将非常有帮助。