0

次のエラーが発生します。

クラスTestProject.TestClassのインスタンスを作成できません。エラー:System.Runtime.InteropServices.COMException:'D:\ Automation \ TestProject\OBJECT_DEFINITIONS.XLS'が見つかりませんでした。ファイル名のスペルをチェックし、ファイルの場所が正しいことを確認してください。最近使用したファイルのリストからファイルを開こうとしている場合は、ファイルの名前が変更されたり、移動されたり、削除されたりしていないことを確認してください。

エラースタックトレース:

Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename、Object UpdateLinks、Object ReadOnly、Object Format、Object Password、Object WriteResPassword、Object IgnoreReadOnlyRecommended、Object Origin、Object Delimiter、Object Editable、Object Notify、Object Converter、Object AddToMru 、Object Local、Object CorruptLoad)
TestProject.TestLibrary.GetObjectDeclarations(String sModule)in C:\ Documents and Settings \ Administrator \ My Documents \ Visual Studio 2010 \ Projects \ TestProject \ TestLibrary.cs:line 133
TestProject.TestClass..ctor( )C:\ Documents and Settings \ Administrator \ My Documents \ Visual Studio 2010 \ Projects \ 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.XLSC:\

4

2 に答える 2

1

そしてもちろん、へのパスを評価する必要がありますpublic string sobjfile。アプリケーションはファイルを検索する場所を知りません。

編集:

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();
            }
        } 
    }
}
于 2011-06-06T15:41:37.907 に答える
0

コード構文を深く掘り下げることなく(私はC#プログラマーではありません)、Seleniumでの経験に基づいて、次のことを試してください-

OBJECT_DEFINITIONS.XLSがそれだけであり、OBJECT_DEFINITIONS.XLSXではないことを確認してください。Excel 2007を使用して作成および保存されたファイルでSeleniumの互換性の問題が発生しました。その場合は、Excelファイルを「Excel97-2003ワークブック」として保存してください。

于 2011-06-06T15:38:34.320 に答える