我正在创建多个电子表格(单独的文件),每个电子表格包含多个工作表,当我在 Excel 中打开其中一个电子表格的输出文件时,它会询问我是否要修复它(这只在我添加表格时才会发生),并显示修复了什么:
Repaired Records: Table from /xl/tables/table1.xml part (Table)
Run Code Online (Sandbox Code Playgroud)
修复后,文件格式正确,但由于这是自动化的,我无法回复使用 Excel 修复这些文件。仅当我创建表时才会出现此问题。
例如:我使用以下参数调用 Define Table 方法来创建一个包含 11 行(包含第 2-12 行)和 8 列(包含第 1-8 行)的表:
DefineTable(worksheetPart, 2, 12, 1, 8);
Run Code Online (Sandbox Code Playgroud)
DefineTable方法如下所示:
private static void DefineTable(WorksheetPart worksheetPart, int rowMin, int rowMax, int colMin, int colMax)
{
TableDefinitionPart tableDefinitionPart = worksheetPart.AddNewPart<TableDefinitionPart>("rId" + (worksheetPart.TableDefinitionParts.Count() + 1));
int tableNo = worksheetPart.TableDefinitionParts.Count();
string reference = ((char)(64 + colMin)).ToString() + rowMin + ":" + ((char)(64 + colMax)).ToString() + rowMax;
Table table = new Table() { Id …Run Code Online (Sandbox Code Playgroud)