System.Runtime.InteropServices.COMException - PullRequest
0 голосов
/ 06 июня 2011

Я получаю следующую ошибку:

Невозможно создать экземпляр класса TestProject.TestClass.Ошибка: System.Runtime.InteropServices.COMException: «D: \ Automation \ TestProject \ OBJECT_DEFINITIONS.XLS» не найден.Проверьте правильность написания имени файла и убедитесь, что местоположение файла указано правильно.Если вы пытаетесь открыть файл из списка последних использованных файлов, убедитесь, что файл не был переименован, перемещен или удален.

Отслеживание стека ошибок:

Microsoft.Office.Interop.Excel.Workbooks.Open (Строка Имя файла, Объект UpdateLinks, Объект ReadOnly, Формат объекта, Пароль объекта, Объект WriteResPassword, Объект IgnoreReadOnlyRecommended, Исходный объект, Разделитель объектов, Редактируемый объект, Уведомить объект, Объектный объектКонвертер, Object AddToMru, Object Local, Object CorruptLoad)
TestProject.TestLibrary.GetObjectDeclarations (String sModule) в C: \ Documents and Settings \ Администратор \ Мои документы \ Visual Studio 2010 \ Проекты \ TestProject \ TestLibrary.cs: строка 133
TestProject.TestClass..ctor () в C: \ Documents and Settings \ Администратор \ Мои документы \ Visual Studio 2010 \ Проекты \ TestProject \ TestClass.cs: строка 51

код:

using Excel = Microsoft.Office.Interop.Excel;

namespace TestProject
{
[TestClass]
public class TestLibrary
{
    public string[] arrObj = new string[19];
    public string[] arrConfig = new string[12];
    public string sobjfile;
    .
    .
    .
    xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Open(sobjfile, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

Мне интересно, почему ошибка говорит, что D:\Automation\TestProject\OBJECT_DEFINITIONS.XLS не может быть найден, когда у меня OBJECT_DEFINITIONS.XLS stруд в C:\

Ответы [ 2 ]

1 голос
/ 06 июня 2011

И, конечно же, вам нужно найти путь к public string sobjfile. Приложение не знает, где искать ваш файл.

EDIT:

using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel; 

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp ;
            Excel.Workbook xlWorkBook ;
            Excel.Worksheet xlWorkSheet ;
            object misValue = System.Reflection.Missing.Value;

            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Open("csharp.net-informations.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            MessageBox.Show(xlWorkSheet.get_Range("A1","A1").Value2.ToString());

            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Unable to release the Object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        } 
    }
}
0 голосов
/ 06 июня 2011

Не углубляясь в синтаксис вашего кода (я не программист на C #) и основываясь на моем опыте работы с Selenium, попробуйте следующее -

Убедитесь, что OBJECT_DEFINITIONS.XLS - это именно то, а не OBJECT_DEFINITIONS.XLSX.Я столкнулся с проблемами совместимости Selenium с файлами, созданными и сохраненными с помощью Excel 2007. Если это так, сохраните файл Excel как «Excel 97-2003 Workbook».

...