【发布时间】:2017-03-23 01:29:54
【问题描述】:
我正在使用 OpenXML SDK 来更新 Excel 电子表格的内容。将单元格插入 Excel 行时,它们必须以正确的顺序插入,否则文件将无法在 Excel 中正确打开。我正在使用以下代码来查找将在我插入的单元格之后的第一个单元格。这段代码几乎直接来自OpenXML SDK documentation
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 都会抛出异常。我使用的是每个版本的最新版本。
【问题讨论】:
标签: c# excel openxml-sdk