破損したワークブックが 100 個以上あります。それらを開こうとすると、「x」は宣言されていないプレフィックスであるというエラー メッセージが表示されます。これらのファイルは、xml ビューアー (OpenXML ビューアーを含む) にロードできません。ここで、Excel ワークブックの拡張子を .zip に変更し、すべての部分を解凍して、workbook.xml ファイルの次の行 (xml ドキュメントの最後の要素) を編集します。
<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>
要素全体を削除するかx:
、<ext>
タグ内の を削除すると、ワークブックをパッケージ化した後、ワークブックが適切に機能します。
次の 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」は宣言されていないプレフィックスエラーです。これを修正する方法を知っている人はいますか?どんな助けでも大歓迎です。