设置单元格合并并设置它的值,但是不起作用?//使用EPPlus.dll使用OfficeOpenXmlstringpath=@"C:UsersSupermanDesktoprecc1996.xlsx";ExcelPackagepackage=newExcelPackage(newFileInfo(path));varsheet3=package.Workbook.Worksheets[3];sheet3.Cells["A1:B5"].Merge=true;varmergedId=sheet3.MergedCells[1,1];sheet3.Cells[mergedId].First().Value="123";//错误:System.InvalidOperationException:序列不包含任何元素package.Save();怎么了?怎么做?要回答First()方法出现异常的原因-我敢打赌sheet3在您的Excel中是空的。请记住,Cells对象仅包含对具有实际内容的单元格的引用。但是如果excel中的所有单元格都是空的,那么EPPlus中的单元格集合也是空的。例如,这在创建一个全新的工作表时效果很好:brandNewSheet.Cells["A1"].LoadFromCollection(new[]{"A","B","C","D","E"});brandNewSheet.Cells["B1"].LoadFromCollection(new[]{"A","B","C","D","E"});brandNewSheet.Cells["A1:B5"].Merge=true;varmergedId=brandNewSheet.MergedCells[1,1];brandNewSheet.Cells[mergedId].First().Value="123";包。保存();但是如果你注释掉LoadFromCollection调用,你会得到一个运行时异常://brandNewSheet.Cells["A1"].LoadFromCollection(new[]{"A","B","C","D","E"});//brandNewSheet.Cells["B1"].LoadFromCollection(new[]{"A","B","C","D","E"});brandNewSheet.Cells["A1:B5"].Merge=true;varmergedId=brandNewSheet.MergedCells[1,1];brandNewSheet.Cells[mergedId].First().Value="123";//Cells是空的,所以:System.InvalidOperationException:序列不包含任何元素package.Save();正如其他人所解释的那样,没有必要调用First()来获得你想要的东西,但我认为如果你注释掉构建错误我至少可以解决这个问题,结果表中的单元格是否合并?如果是,请尝试简单地为单元格A1分配一个值,看看是否可行。希望这可以帮助您已经在上面的示例代码中使用内联ExcelRange:sheet3.Cells["A1:B5"].Merge=true;所以保存引用,并用它来设置合并单元格的值:using(varpackage=newExcelPackage(newFileInfo(path))){varsheet3=package.Workbook.Worksheets[3];varrange=sheet3.Cells["A1:B5"];范围.Merge=true;sheet3.Cells[范围.Start.Address].Value="123";包。保存();现在无需计算或硬编码单元格地址或索引。换句话说,当你这样做时:varmergedId=sheet3.MergedCells[1,1];代码抛出System.InvalidOperationException因为mergedId是A1:B5。反过来:range.Start.Address//A1正确设置单元格值。只是一个建议:使用“using”并在代码中稍作更改:using(ExcelPackagepackage=newExcelPackage(newFileInfo(path))){varsheet3=package.Workbook.Worksheets[3];sheet3.Cells["A1:B5"].Merge=true;varmergedId=sheet3.MergedCells[1,1];sheet3.Cells["A1"].Value="123";包。保存();}我认为范围不再被识别,因为你合并了它EDIT1:这段代码对我来说就像一个魅力。我觉得你不需要.First()上面是C#学习教程:设置单元格合并并设置它的值,但是不起作用?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——using(ExcelPackagepackage=newExcelPackage(newFileInfo(path))){varsheet3=package.Workbook.Worksheets[3];sheet3.Cells["A1:B5"].Merge=true;varmergedId=sheet3.MergedCells[1,1];sheet3.Cells[mergedId].Value="123";包。保存();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
