2013-08-29 1 views
5

Есть ли инструмент, который может определить точное местоположение ошибок в документе Excel, созданном с помощью OpenXML SDK?Есть ли инструмент для поиска ошибок в документах Excel, созданных с помощью OpenXML SDK?

Я создал файл Excel с помощью Microsoft OpenXML SDK 2.5 (также попробовал v 2.0 с тем же результатом) и должен был совершить ошибку где-то в коде. То, что я пытаюсь выяснить, где.

Функции проверки SDK говорят, что документ действительно. При проверке сгенерированного файла Excel с помощью инструмента OpenXML SDK Productivity ответ «Ошибка проверки не найдена в пакете».

Но при открытии файла Excel с помощью MS Excel ошибка предупреждает пользователя о необходимости ремонта документа, после ремонта документ отображается правильно. Журнал восстановления Excel говорит, что файл table.xml имеет ошибку, но не местонахождение ошибки в файле. Excel журнал ремонт следующим образом:

Исправленные отчеты: таблица из /xl/tables/table.xml (Список)

Есть инструмент, кроме инструмента производительности OpenXML SDK, который может быть использован для проверки электронных таблиц Excel и определить ошибки в документе?

ответ

5

Хотя сообщение устарело, но я застрял в той же ситуации &, поэтому я создал приложение Windows, которое должно принять файл, используя диалог с файлом &, чтобы разобрать его. Первая функция просто обрабатывает сгенерированное имя файла с помощью диалогового окна &, а второй метод отображает все ошибки, которые наблюдаются в сгенерированном файле.

Сгенерированное как показано на рисунке http://s18.postimg.org/60rqf78gp/Parse_Open_XML_Generated_File.jpg

private void button1_Click(object sender, EventArgs e) 
    { 
     lblError.Text = ""; 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      textBox1.Text = openFileDialog1.SafeFileName;     
     } 

    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      var validator = new OpenXmlValidator(); 
      int count = 0; 
      foreach (ValidationErrorInfo error in validator.Validate(SpreadsheetDocument.Open(openFileDialog1.FileName, true))) 
      { 
       lblError.Text += "\r\n"; 
       count++; 
       lblError.Text += ("Error Count : " + count) + "\r\n"; 
       lblError.Text += ("Description : " + error.Description) + "\r\n"; 
       lblError.Text += ("Path: " + error.Path.XPath) + "\r\n"; 
       lblError.Text += ("Part: " + error.Part.Uri) + "\r\n"; 
      } 
      Console.ReadKey(); 
     } 
     catch (Exception ex) 
     { 
      lblError.Text += (ex.Message); 
     } 
    } 
+4

Пробовал, что благодаря, тому OpenXmlValidator не возвращает никаких ошибок, но при открытии файла на Excel, он сообщает об ошибках и пытается восстановить их. Похоже, что OpenXmlValidator не улавливает столько ошибок, сколько делает Excel. – Lenny