我正在使用OpenXML SDK来更新Excel电子表格的内容。将单元格插入Excel行时,必须按正确的顺序插入,否则文件将无法在Excel中正确打开。我正在使用以下代码来查找将插入单元格后的第一个单元格。此代码来几乎直接从OpenXML SDK documentation如何插入Excel单元而不创建损坏的文件?
public static Cell GetFirstFollowingCell(Row row, string newCellReference)
{
Cell refCell = null;
foreach (Cell cell in row.Elements<Cell>())
{
if (string.Compare(cell.CellReference.Value, newCellReference, true) > 0)
{
refCell = cell;
break;
}
}
return refCell;
}
当我编辑与此代码文件,然后在Excel中打开它们,Excel报表,该文件已损坏。 Excel能够修复文件,但大部分数据都从工作簿中删除。为什么这会导致文件损坏?
备注:在转向痛苦的低级别OpenXML SDK之前,我尝试了两个不同的.NET Excel库。 NPOI创建了包含损坏的电子表格,并且每当我尝试保存时,EPPlus都会抛出异常。我正在使用每个版本的最新版本。