Ich habe ein Regex-Muster erstellt, das alle #REF
in meiner Excel-Datei findet. Ich habe eine foreach
Schleife erstellt, um alle #REF
zurückzugeben und sie in der Konsole zusammen mit einer Anzahl von ihnen siplay. Das funktioniert gut. Allerdings habe ich dann eine foreach
Schleife erstellt, um alle #REF
Referenzen zu entfernen, aber es entfernt nur jedes Mal, wenn ich das Projekt ausführen. Ich habe dies debuggt und nachdem Regex die Übereinstimmung einmal in der if-Anweisung findet, überspringt es das nächste Mal, wenn es in die foreach eintritt, die if-Anweisung, als ob es keine andere Übereinstimmung finden könnte. Ich bin mir nicht sicher, warum diesForeach-Schleife mit Regex, um XML-Muster zu finden
Mein Code als
-Code Bricht ist alles zurück der BEZUG
using (var spreadsheet = DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(@"C:\Users\Craig\Desktop\newTest.xlsx", true))
{
var workbook = spreadsheet.WorkbookPart;
Workbook w = new Workbook();
var names = workbook.Workbook.DefinedNames;
var work = workbook.Workbook;
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"#REF");
int count = result.InactiveNamedRangeCount = names.Count(n => regex.IsMatch(n.InnerText));
Console.WriteLine(count);
foreach (var name in names)
{
if (regex.IsMatch(name.InnerText))
{
Console.WriteLine(name.InnerText);
}
}
Codewerte jeden #REF
Wert
foreach (var name in names)
{
if (regex.IsMatch(name.InnerText))
{
name.Remove();
work.Save();
}
}
Console.WriteLine(count);
Console.ReadKey();
}
Wo ist die XML hier? – mybirthname
Weil ich die #REF aus einer Excel-Datei, die im Wesentlichen ein gezippter Ordner von XML-Dokumenten ist –