OpenXML电子表格在Excel中损坏

我正在使用OpenXML(2.5)来创build自定义电子表格。 在我使用的虚拟机上,我只有OpenXML的电子表格工作正常(自定义格式和一切)的Open Office。 但是,将文件移动到使用Microsoft Office的计算机时,由于数据损坏,每个版本的文件都无法打开。 我拿出所有的定制,仍然有一个损坏的结果(这仍然在开放办公室工作)。

这是我有一个裸露的骨骼电子表格文件,这又是,在Open Office中工作,但在Excel中被视为损坏的代码。

public string CreateGrid() { var path = Path.GetTempFileName(); var document = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook); var workbookpart = document.AddWorkbookPart(); workbookpart.Workbook.Save(); document.Close(); return path; } 

我得到的错误是“在文本内容中find无效字符”。 行:1列:1文件偏移量:0正如你可以在代码中看到的,我没有添加任何文本,但我相当肯定它不是非法字符。 任何帮助将不胜感激。

我能弄清楚这个问题。 首先,使用上面的代码,Excel使用OpenXML时需要一个完全格式化的文件。 这意味着只要有一个工作簿的文件是不够的,它必须有工作簿,工作表和至less1张工作表才能正常打开。 我遇到的另一个问题(数据不能在Excel中显示)是因为当我遍历行时​​,我不是每次都创build一个新行。 对于任何尝试同样的事情的人,代码应该如下所示:

 foreach (var temp in tempList) { if (cellIdex == 12) { cellIdex = 0; rowIdex = rowIdex + 1; row = new Row { RowIndex = rowIdex }; sheetData.AppendChild(row); } cell = CreateTextCell(ColumnLetter(cellIdex), rowIdex, tempToString(), 3); row.AppendChild(cell); cellIdex = cellIdex + 1; } 

最重要的部分是“row = new Row {RowIndex = rowIdex};”。 可能看起来很简单,但却让我头痛不已。