我正在使用C#和OpenXML进行项目。我收到一个错误,说“Excel能够通过重新制作或删除不可读的内容来打开文件”。OpenXML C# - 什么决定了open office文件结构中“sheet.xml”的名称?
我知道错误发生的原因(合并的单元格添加了冲突的范围),但是我对/xl/worksheets/sheets__.xml的命名感到困惑。大多数命名适当的sheet1,sheet2等,有时它们被命名为“sheet1e.xml”或“sheet1d.xml”。
如果我在Excel中进行修复后保存文件,我可以在Open XML SDK生产力工具中打开它。我没有看到以这种方式命名的工作表。
将文件重命名为“.zip”扩展名我能够看到名为“sheet1e.xml”的表单,因为错误提到了。
我以为它们命名这样会保存在文件结构:
document.WorkbookPart.Workbook.Sheets.AppendChild(new Sheet()
{
Id = document.WorkbookPart.GetIdOfPart(worksheetPart),
SheetId = (UInt32)counter,
Name = "Sheet_" + counter
});
我必须失去了一些东西..有没有一种方法来设置.xml文件的名称以匹配说什么在错误中;我希望能有这样的用户至少知道问题发生在哪张表上,并且可以纠正数据库中重叠的数据。也许我不应该设置这个名字?
更新
我相信我已经找到了原因,但根本不知其所以然理解。听到比我有更多知识的人会很高兴。看起来在表格25之后,他们被命名为sheet1A,1B等。从我的表格名称中删除“_”修复了问题。
谢谢!这有助于解释很多:) – hackingchemist