我有100多個工作簿已被破壞 - 當他們試圖打開時,Excel會拋出一個錯誤消息,說'x'是一個未聲明的前綴。這些文件無法在xml查看器中加載(包括OpenXML之一)。現在,如果我改變了Excel工作簿的擴展爲.zip,解壓所有的部件,編輯下面一行通過刪除(這是XML文檔中的最後一個元素)在workbook.xml文件如何通過OpenXML從Excel工作簿中刪除/刪除ExtensionList?
<extLst><x:ext uri="{140A7094-0E35-4892-8432-C4D2E57EDEB5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:workbookPr chartTrackingRefBase="1"/></x:ext></extLst>
整個元素或通過刪除<ext>
標籤中的x:
,然後在將其打包備份後工作簿將正常運行。
我也試過以下VB.Net代碼:
Private Sub RemoveExceptionsFromWorkbook(ByVal workbookPath As String)
Using excelDoc As SpreadsheetDocument = SpreadsheetDocument.Open(workbookPath, True)
If excelDoc.WorkbookPart.Workbook.Descendants(Of WorkbookExtensionList)().Any() Then
excelDoc.WorkbookPart.Workbook.RemoveAllChildren(Of WorkbookExtensionList)()
excelDoc.WorkbookPart.Workbook.Save()
End If
End Using
End Sub
但我一次比一次的「X」是一個未聲明的前綴錯誤。有誰知道如何解決這一問題?任何幫助將不勝感激。