首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ClosedXML使用条件格式添加WorkSheet

ClosedXML使用条件格式添加WorkSheet
EN

Stack Overflow用户
提问于 2016-06-06 23:21:00
回答 1查看 2K关注 0票数 2

我正在使用ClosedXML向现有的Excel文档添加新的工作表。它可以很好地处理普通的Excel文档。

但是,如果excel文档工作表在某些单元格上包含条件格式,则会抛出错误。

代码语言:javascript
运行
复制
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)

以下是示例代码

代码语言:javascript
运行
复制
using (var excelDoc = new ClosedXML.Excel.XLWorkbook(strFilePath))
{
    excelDoc.Worksheets.Add("New Result Sheet");                    
    excelDoc.SaveAs(strFilePathSave);
}

请帮助解决此问题。

EN

回答 1

Stack Overflow用户

发布于 2016-06-07 17:23:57

XlsIO是一个.NET库,可以读写Excel2003/2007/2010/2013/2016文件。使用XlsIO,您可以非常轻松地添加/修改具有条件格式的工作表,而不会出现任何问题。如果您符合条件,整个控件套件都可以通过community license program免费获得(商业应用程序也可以)。社区许可证是没有限制或水印的完整产品。

步骤1:创建控制台应用程序

步骤2:添加对Syncfusion.XlsIO.Base和Syncfusion.Compression.Base的引用,您也可以使用NuGet将这些引用添加到您的项目中。

步骤3:复制并粘贴以下代码片段。

以下代码片段说明了如何使用XlsIO添加具有条件格式的工作表

代码语言:javascript
运行
复制
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");
}

请参考示例以实现此场景,示例可从以下位置下载。

Download Demo

有关XlsIO的更多信息,请参阅我们的help documentation

注意:我在Syncfusion工作

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37661107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档