2012-10-16 4 views
0

C#의 Excel 통합 문서로 작업하는 데 어려움을 겪고 있습니다. 나는 기본적인 작업을 제대로 할 수 없다. 그리고 어떤 이유로 엑셀 관련 클래스에 대한 문서 이 다른 것보다 좋지 않은 것으로 보인다. 지금까지 xml 및 텍스트 파일로 작업하는 방법을 배웠습니다. 훨씬 쉽고 탁월했습니다. 이 코드에서 오류 만 얻을, 나는 MSDN 포럼에서 다음 예를 복사했습니다하지만 난이 네임 스페이스를 선언하는 데에도 어려움 을 가지고, 출근하지 못할 :Excel 통합 문서의 오류

using Microsoft.Office.Interop.Excel; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      object oExcel=new Excel.Application(); 
      object oBook = oExcel.Workbooks.Open("C:\\Book1.xls"); 
      object oSheet = oExcel.Worksheets(1); 
+1

무엇이 오류입니까? – ApplePie

+0

내가 네임 스페이스를 선언하면 성능이 향상되지 않는다. –

+0

''Microsoft.Office.Interop 만 사용하면 어떻게됩니까? – ApplePie

답변

0
using System.Runtime.InteropServices; 
using Microsoft.Office.Interop.Excel; 

    Excel.ApplicationClass _Excel; 
    Excel.Workbook WB; 
    Excel.Worksheet WS; 

try 
    { 

    _Excel = new Microsoft.Office.Interop.Excel.ApplicationClass(); 
    WB = _Excel.Workbooks.Open("C:\\Book1.xls", 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
     Type.Missing, Type.Missing); 

     //do something 
     WB.Visible = true; 
    } 
    catch (Exception ex) 
    { 
     WB.Close(false, Type.Missing, Type.Missing); 

     throw; 
    } 
    finally 
    { 
     GC.Collect(); 
     GC.WaitForPendingFinalizers(); 
     System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB); 
     System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel); 
    } 

옵션 2가 이 링크 여기 How to Open an Excel File in C#

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(); 
      } 
     } 
    } 
} 

에서 제공하는 스크린 샷의 단계를 수행하면 .. 여기뿐만 아니라 을 시도 할 수있는 링크뿐만 아니라 인 것은 제/전직을 읽거나 열 수있는 또 다른 방법입니다 CEL 파일 Excel Interop with .NET

+0

"Excel.ApplicationClass"-inteop 오류가 발생합니다. 유형을 삽입 할 수 없으면 대신 해당 인터페이스를 사용하십시오. –

+0

"Excel = Microsoft.Office.Interop.Excel 사용"을 사용해야하지만 이전 오류가 발생했습니다. 링크 덕분입니다. –

+0

게시 한 블록의 전체 코드를 보여주십시오. 또한 실행중인 Microsoft Office 버전을 알려주십시오. Office 2007을 사용하는 경우 Interop 버전 11.0을 같은 버전 12 이상으로 가져 오지 마십시오. – MethodMan

관련 문제